То, что вы действительно пытаетесь сделать, это удалить все между _\s
и (
, а также все после )
.Кроме того, вы хотите сохранить все до _\s
и от (
до )
.Вы должны стремиться определять разделители ваших групп захвата, а не их содержимое большую часть времени:
(.+?)_\s.*(\(\d+ min\)).*
В этом случае вместо удаления сохраняйте только содержимое групп захвата 1 и 2.Многие инструменты позволят вам сказать что-то вроде \1\2
в шаблоне замены.
Если ваш инструмент удаляет все совпадения и вы настаиваете на том, чтобы делать это таким образом, вам придется использовать двухпроходный подход, так какУ вас есть два отключенных региона для удаления.Для этого потребуется инструмент, который поддерживает прогнозирование и просмотр сзади, как это делает большинство из них.
При первом проходе будет использоваться
_\s.*(?=\(\d+ min\))
При втором проходе будет удалено
(?<=\(\d+ min\)).*