2

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

строка выглядит следующим образом

Where do you want to go next?
some text
some text
some text
Home

Теперь «некоторый текст» может быть одной строкой или несколькими строками текста. Иногда «Куда ты хочешь пойти дальше?'строка будет иметь только одну строку текста между ним и Home.

Самым последним пунктом в этом списке всегда будет слово Home с капиталом H.

Я хочу удалить каждый экземпляр этого блока текста (который встречается буквально сотни раз в этом документе) из раздела «Куда вы хотите идти дальше?», Любые строки «некоторый текст» и слово «Домой».

Я столкнулся с проблемами в том, что «некоторый текст» был переменным и начинался с новой строки. Я должен признать, что я не так хорош в регулярных выражениях, поэтому я полагаю, что кто-то на Superuser.com может использовать некоторые очки репутации :)

Дайте мне знать, если вам нужна дополнительная информация.

Спасибо,

Richie

2 ответа2

3

Более новая версия Notepad++ (> 6.1.x, я думаю) теперь поддерживает многострочное сопоставление (сейчас я использую 6.1.5)

В диалоговом окне «Найти / заменить» рядом с переключателем "Регулярное выражение" имеется флажок «. Соответствует новой строке», что означает многострочное сопоставление.

Отметьте этот флажок и используйте это регулярное выражение:

^Where do you want to go next\?.*?^Home$
0

Это регулярное выражение работает для меня:

^Where do you want to go next?\r\n(.*\r\n)*?Home$

Windows использует \r\n для новых строк. Unix-системы просто используют \n .

Это различие только что произошло со мной, так что спасибо, что научили меня чему-то новому. :-)

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