У меня есть многострочная строка, и я хотел бы извлечь только строки, которые соответствуют определенному шаблону, и отбросить оставшуюся часть строки.
Исходная строка:
lorem ipsum dolor sit amet consectetur
nunc KEEP THIS LINE ut massa lorem
DO NOT KEEP THIS LINE aenean blandit
nunc KEEP THIS LINE et justo quis
praesent at velit felis vel
Желаемая финальная строка:
KEEP THIS LINE ut massa lorem
KEEP THIS LINE et justo quis
До сих пор у меня есть регулярное выражение:
(?ms).*?(?-s)^nunc (KEEP THIS LINE.*?$)
Я могу просто заменить совпадение на обратную ссылку \1
. Тем не менее, это не может заменить от конца последнего сопоставленного шаблона до конца строки.
Регулярное выражение:
(?ms).*?(?-s)(^nunc (KEEP THIS LINE.*?$)|(?s:).*?\Z)
успешно идентифицирует шаблон между последней требуемой строкой и концом строки, но я не могу понять, как ее удалить.