Dans l'expression régulière Emacs, \n
ne correspond pas à un nouveau caractère de ligne \n
.
- Suis-je correct qui
$
correspond à la position entre un nouveau caractère de ligne et le caractère juste avant le nouveau caractère de ligne. par exemple pour une chaîneabc\n
,$
correspond à la position entrec
et\n
? - Quelle est l'expression rationnelle qui correspond
\n
?
regular-expressions
StackExchange pour tous
la source
la source
(re-search-forward "\n")
marche bien pour moi.abc\r\n
au lieu deabc\n
.\n
àn
. mon tampon est en mode fondamental. Cela arrive à n'importe quel texte, donc tout texte avec une nouvelle ligne ou lettren
est un exemple de travail\r\n
àrn
Réponses:
$
correspond à la fin de la ligne , pas au caractère de nouvelle ligne qui vient après la fin de la ligne.C-M-s C-q C-j
.C-q
est la liaison par défaut pourquoted-insert
et fonctionne également dans le mini-tampon. Cette expression recherche littéralement une nouvelle ligne:C-j
.la source
(looking-at "^J")
où ^ J est inséré parC-q C-j
), l'C-q C-j
approche fonctionne toujours. Mais lorsque vous utilisez des fonctions elisp comme les mêmes, celalooking-at
\n
fonctionne aussi;M-: (looking-at "\n") RET
sera évalué à true si le curseur se trouve à la fin de la ligne (et il y a une nouvelle ligne après cela).regexp-builder
, vous pouvez reconnaître une nouvelle ligne avec[\n]
.[\n]
àn
.Comme Dan le commente, l'expression régulière qui correspond à une nouvelle ligne est une nouvelle ligne.
Vous pouvez représenter une nouvelle ligne dans une chaîne entre guillemets dans elisp as
"\n"
. Il n'y a pas de syntaxe supplémentaire spécifique spécifique à regexp pour cela - vous utilisez simplement une nouvelle ligne, exactement comme n'importe quel autre caractère littéral.Si vous entrez une expression rationnelle de manière interactive, vous pouvez insérer la nouvelle ligne avec C-qC-j, comme le souligne la réponse de kaushalmodi.
la source
\n
ne correspond pas à un nouveau caractère de ligne.C-q C-j
est le moyen le plus fiable de taper une nouvelle ligne à l'invite.