Предположим, что у вас есть этот файл:
x
a
b
c
x
x
a
b
c
x
x
и вы хотите найти последовательность abc (и выберите целые 3 строки) с помощью Notepad ++. Как выразить новую строку в регулярном выражении, пожалуйста?
Предположим, что у вас есть этот файл:
x
a
b
c
x
x
a
b
c
x
x
и вы хотите найти последовательность abc (и выберите целые 3 строки) с помощью Notepad ++. Как выразить новую строку в регулярном выражении, пожалуйста?
Notepad ++ может сделать это удобно, вам даже не нужны регулярные выражения
В диалоговом окне поиска найдите в левом нижнем углу и переключите свой режим поиска на Extended, который позволяет \n и т.д.
В качестве шансов на работу с файлом в формате Windows вы будете искать \r\n (возврат каретки, новая строка)
a\r\nb\r\nc
Найдите шаблон в трех строках
Обновление 18 июня 2012 г.
С помощью нового Notepad ++ v6 вы можете действительно искать новые строки с регулярными выражениями. Таким образом, вы можете просто использовать
a\r\nb\r\nc
даже с регулярными выражениями, чтобы выполнить то, что вы хотите. Примечание \r\n
- это кодировка Windows разрывов строк. В Unix файлах это просто \n
.
К сожалению, вы не можете сделать это в Notepad ++ при использовании поиска в регулярном выражении. Notepad ++ основан на компоненте редактора Scintilla, который не обрабатывает символы новой строки в регулярном выражении.
Вы можете использовать расширенный поиск для поиска в новой строке, но я не думаю, что это поможет вам искать 3 строки.
Подробнее здесь.
Обновление: Robb и StartClass0830 были прав насчет расширенного поиска. Он работает, но не при поиске регулярных выражений.
^a\x0D\x0Ab\x0D\x0Ac
Это будет работать \x0D - это новая строка, а \x0A - возврат каретки. Предполагается, что каждая строка в вашем файле заканчивается ascii 10 и 13.
Я нашел обходное решение для этого.
Просто в расширенном режиме замените все \r\n
на строку, которая не существует в остальной части документа, например. ,,,newline,,,
(обратите внимание на специальные символы регулярных выражений, такие как $
, &
и *
).
Затем переключитесь в режим Regexp, выполните некоторые замены (теперь новая строка ,,,newline,,,
).
Затем снова переключитесь в расширенный режим и замените все ,,,newline,,,
на \r\n
.
a\r\nb\r\nc
работает для меня, но не ^a\x0D\x0Ab\x0D\x0Ac
Хм, слишком плохо, что новая строка не работает с регулярными выражениями. Теперь мне нужно снова вернуться в Textpad.: (
В Notepad ++ вы также можете попробовать выделить нужную часть текста, а затем нажать CTRL + J.
Это оправдывает текст и тем самым удаляет все окончания строк.