Подтвердить что ты не робот

Notepad ++ newline в регулярном выражении

Предположим, что у вас есть этот файл:

x
a
b
c
x
x
a
b
c
x
x

и вы хотите найти последовательность abc (и выберите целые 3 строки) с помощью Notepad ++. Как выразить новую строку в регулярном выражении, пожалуйста?

4b9b3361

Ответ 1

Notepad ++ может сделать это удобно, вам даже не нужны регулярные выражения

В диалоговом окне поиска найдите в левом нижнем углу и переключите свой режим поиска на Extended, который позволяет \n и т.д.

В качестве шансов на работу с файлом в формате Windows вы будете искать \r\n (возврат каретки, новая строка)

a\r\nb\r\nc

Найдите шаблон в трех строках

Ответ 2

Обновление 18 июня 2012 г.

С помощью нового Notepad ++ v6 вы можете действительно искать новые строки с регулярными выражениями. Таким образом, вы можете просто использовать

a\r\nb\r\nc

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

К сожалению, вы не можете сделать это в Notepad ++ при использовании поиска в регулярном выражении. Notepad ++ основан на компоненте редактора Scintilla, который не обрабатывает символы новой строки в регулярном выражении.

Вы можете использовать расширенный поиск для поиска в новой строке, но я не думаю, что это поможет вам искать 3 строки.

Подробнее здесь.

Обновление: Robb и StartClass0830 были прав насчет расширенного поиска. Он работает, но не при поиске регулярных выражений.

Ответ 3

^a\x0D\x0Ab\x0D\x0Ac

Это будет работать \x0D - это новая строка, а \x0A - возврат каретки. Предполагается, что каждая строка в вашем файле заканчивается ascii 10 и 13.

Ответ 4

Я нашел обходное решение для этого. Просто в расширенном режиме замените все \r\n на строку, которая не существует в остальной части документа, например. ,,,newline,,, (обратите внимание на специальные символы регулярных выражений, такие как $, & и *). Затем переключитесь в режим Regexp, выполните некоторые замены (теперь новая строка ,,,newline,,,). Затем снова переключитесь в расширенный режим и замените все ,,,newline,,, на \r\n.

Ответ 5

a\r\nb\r\nc работает для меня, но не ^a\x0D\x0Ab\x0D\x0Ac

Хм, слишком плохо, что новая строка не работает с регулярными выражениями. Теперь мне нужно снова вернуться в Textpad.: (

Ответ 6

В Notepad ++ вы также можете попробовать выделить нужную часть текста, а затем нажать CTRL + J.

Это оправдывает текст и тем самым удаляет все окончания строк.