В регулярном выражении Emacs \n
не соответствует символу новой строки \n
.
- Правильно ли я, что
$
соответствует позиции между символом новой строки и символом прямо перед символом новой строки. например, для строкиabc\n
,$
соответствует позиции междуc
и\n
? - Какое регулярное выражение соответствует
\n
?
regular-expressions
StackExchange для всех
источник
источник
(re-search-forward "\n")
у меня отлично работает.abc\r\n
вместоabc\n
.\n
сn
. мой буфер находится в фундаментальном режиме. Это происходит с любым текстом, поэтому любой текст с новой строкой или буквойn
является рабочим примером\r\n
кrn
Ответы:
$
соответствует концу строки , а не символу новой строки, который следует после конца строки.C-M-s C-q C-j
.C-q
является связыванием по умолчаниюquoted-insert
и работает в минибуфере тоже. Это выражение буквально ищет символ новой строки:C-j
.источник
(looking-at "^J")
где вставляется ^ JC-q C-j
), этотC-q C-j
подход всегда работает. Но при использовании функций elisplooking-at
\n
тоже самое работает;M-: (looking-at "\n") RET
будет иметь значение true, если курсор находится в конце строки (и после этого есть новая строка).regexp-builder
вы используете , вы можете распознать новую строку с[\n]
.[\n]
сn
.Как комментирует Дэн, регулярное выражение, которое соответствует новой строке, является новой строкой.
Вы можете представить новую строку в строке в кавычках в elisp как
"\n"
. Для этого не существует специального дополнительного синтаксиса, специфичного для регулярных выражений - вы просто используете новую строку, точно так же, как любой другой буквенный символ.Если вы вводите регулярное выражение в интерактивном режиме, вы можете вставить новую C-qC-jстроку с помощью , как указывает ответ kaushalmodi.
источник
\n
не соответствует символу новой строки.C-q C-j
это самый надежный способ ввода новой строки в командной строке.