En Emacs regex, \n
no coincide con un nuevo carácter de línea \n
.
- ¿Es correcto que
$
coincida con la posición entre un nuevo carácter de línea y el carácter justo antes del nuevo carácter de línea? Por ejemplo, para una cadenaabc\n
,$
coincide con la posición entrec
y\n
? - ¿Cuál es la expresión regular que coincide
\n
?
regular-expressions
StackExchange para todos
fuente
fuente
(re-search-forward "\n")
funciona bien para mí.abc\r\n
lugar deabc\n
.\n
con ambosn
. mi búfer está en modo fundamental. Esto le sucede a cualquier texto, por lo que cualquier texto con una nueva línea o letran
es un ejemplo de trabajo\r\n
conrn
Respuestas:
$
coincide con el final de la línea , no con el carácter de nueva línea que viene después del final de la línea.C-M-s C-q C-j
.C-q
es el enlace predeterminadoquoted-insert
y también funciona en el minibúfer. Esta expresión, literalmente, busca una nueva línea:C-j
.fuente
(looking-at "^J")
donde se inserta ^ JC-q C-j
), elC-q C-j
enfoque siempre funciona. Pero cuando se usan funciones elisp como las mismaslooking-at
\n
también funciona;M-: (looking-at "\n") RET
evaluará a verdadero si el cursor está al final de la línea (y hay una nueva línea después de eso).regexp-builder
, puede reconocer una nueva línea con[\n]
.[\n]
con ambosn
.Como comenta Dan, la expresión regular que coincide con una nueva línea es una nueva línea.
Puede representar una nueva línea en una cadena entre comillas en elisp como
"\n"
. No hay una sintaxis adicional específica de expresiones regulares adicionales para esto: solo usa una nueva línea, exactamente como cualquier otro carácter literal.Si está ingresando una expresión regular de manera interactiva , puede insertar la nueva línea con C-qC-j, como señala la respuesta de kaushalmodi.
fuente
\n
no coincide con un nuevo carácter de línea.C-q C-j
es la forma más confiable de escribir una nueva línea en un mensaje.