No regex do Emacs, \n
não corresponde a um novo caractere de linha \n
.
- Estou correto que
$
corresponde à posição entre um novo caractere de linha e o caractere logo antes do novo caractere de linha. por exemplo, para uma stringabc\n
,$
corresponde à posição entrec
e\n
? - Qual é o regex que corresponde
\n
?
(re-search-forward "\n")
funcione bem para mim.abc\r\n
vez deabc\n
.\n
an
. meu buffer está no modo Fundamental. Isso acontece com qualquer texto, portanto, qualquer texto com nova linha ou letran
é um exemplo\r\n
comrn
Respostas:
$
corresponde ao final da linha , não ao caractere de nova linha que vem após o final da linha.C-M-s C-q C-j
.C-q
é a ligação padrão paraquoted-insert
e também funciona no minibuffer. Esta expressão literalmente procura por uma nova linha:C-j
.fonte
(looking-at "^J")
onde ^ J é inserido porC-q C-j
), aC-q C-j
abordagem sempre funciona. Mas ao usar funções elisp, o mesmolooking-at
\n
também funciona;M-: (looking-at "\n") RET
será avaliado se o cursor estiver no final da linha (e houver uma nova linha depois disso).regexp-builder
, você poderá reconhecer uma nova linha com[\n]
.[\n]
an
.Como comenta Dan, o regex que corresponde a uma nova linha é uma nova linha.
Você pode representar uma nova linha em uma string entre aspas no elisp como
"\n"
. Não existe uma sintaxe específica específica para o regexp adicional - basta usar uma nova linha, exatamente como qualquer outro caractere literal.Se você estiver inserindo uma regexp interativamente , poderá inserir a nova linha com C-qC-j, como a resposta de kaushalmodi aponta.
fonte
\n
não corresponde a um novo caractere de linha.C-q C-j
é a maneira mais confiável de digitar uma nova linha em um prompt.