Справка по регулярным выражениям, необходимая в Notepad ++

981
Richie086

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

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

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

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

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

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

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

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

Спасибо,

Richie

2

2 ответа на вопрос

3
Flint

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

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

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

^Where do you want to go next\?.*?^Home$ 
0
Hand-E-Food

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

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

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

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

Похожие вопросы