У меня есть XML-файл, в котором мне нужно заменить определенный повторный текст. Однако разрывы строк и возврат каретки могут появляться в тексте где угодно.

Текст всегда такой:

@RELEASED {XXX}

где XXX - это текст, который изменяется, может быть почти любым и может включать разрывы строк и возврат каретки в любом месте (насколько я видел, это всегда два вместе). Может также случиться, что в тексте нет перевода строки и возврата каретки.

Я пытался сделать следующее:

\@ВЫШЕЛ{.+}

Это заменяет соответствующий текст, если в нем нет разрывов строк и возврата каретки.

Затем я попытался заменить \r \n строкой, которая нигде не появляется, а затем снова сделать то же самое:

\@ВЫШЕЛ{.+}

Тем не менее, в этом случае это заменяет один большой кусок файла, вместо каждого появления (возможно, оно идет от самого первого появления этого текста до самого последнего и заменяет все между этими двумя).

Режим поиска установлен на Регулярное выражение, Обтекание отменено. Я пытался поиграть с этими настройками безрезультатно.

Любая помощь с благодарностью.

2 ответа2

1

Обнаружил, что после всех событий было закрытие </tp> , поэтому я сделал следующее:

Найти то, что:

\@Р.*?<

Заменить:

<

Обтекание, регулярное выражение, соответствует новой строке.

Кажется, это сработало. Спасибо за подсказки.

0

У меня нет такого решения, каким оно должно быть, но у меня очень хороший обходной путь.

Сначала замените все разрывы строк уникальным текстом, например, AS ##### LINEBREAK #####, чтобы все разрывы строк были текстовыми. Затем используйте свое первое регулярное выражение для изменения текста, затем замените ##### LINEBREAK ##### обратно на \r \n.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .