Регулярное выражение для замены новых строк после последнего появления символа в многострочном режиме

Полезная нагрузка (многострочный текстовый файл);

foo bar () )
zab()rab)(oof
)
abc
dfe;

aaa )bbb
()hhh(
)
xxx
yyy;

Ожидаемый результат (после preg_replace() звонок или аналог):

foo bar () )
zab()rab)(oof
) abc dfe;

aaa )bbb
()hhh(
) xxx yyy;

Итак, мне нужно регулярное выражение, что делать дальше: найти последние ) символ перед ; и заменить все пробелы (\s с точки зрения регулярного выражения) между ) а также ; в конец файла.

Я пытаюсь играть с негативным взглядом, но в мультилинии мне не везет.

1

Решение

если замена не должна быть с чистым регулярным выражением, я бы использовал регулярное выражение только для сопоставления.

\)([^\)]+);

это гарантирует, что это займет самое последнее ) до ;,

после этого у вас будет содержимое, которое находится между ними, и вы можете просто заменить \ n и \ r или все, что вы хотите, чем угодно.

0

Другие решения

Сделайте этот комментарий, чтобы пометить вопрос как ответивший: посмотрите на комментарий Deadooshka.

0

По вопросам рекламы [email protected]