Вы можете немного изменить свое регулярное выражение, чтобы использовать положительный прогноз для остановки перед временной строкой или концом ввода, используя это регулярное выражение, а также использовать [\w\W]
для захвата нескольких строк,
([0-9]{1,2}h)\s*([0-9]{1,2}min)*:\s*([\w\W]*?)(?=[0-9]{1,2}h\s*([0-9]{1,2}min)|$)
Regex Demo 1
OR
Еще лучше регулярное выражение, если время может появиться в описании в любом месте, вы можете использовать это регулярное выражение, которое использует многострочный режим, а в перспективе использует ^
, чтобы убедиться, что оно не останавливается, если время присутствует в описании где-либо и использует \Z
для обозначения абсолютного конца строки.
([0-9]{1,2}h)\s*([0-9]{1,2}min)*:\s*([\w\W]*?)(?=^[0-9]{1,2}h\s*[0-9]{1,2}min|\Z)
Regex Demo 2
Дайте мне знать, если это работает для вас.