Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

"Negative regexp" dans regexp-isearch ?

2 réponses
Avatar
Jérôme
Bonjour

J'ai un fichier de sortie dans lequel je veux chercher le mot "errors"
en excluant les cas du type "no errors"

Y a t il la possibilit=E9 de de mettre du "n=E9gatif" dans les regexp de
Emacs ?
D'apr=E8s ce que j'ai vu dans le manuel, c'est non. Je cherchais une
confirmation.

PS : je sais que "[^nN][^oO][^ ]errors" est possible. Je cherchais
quelque chose de plus =E9l=E9gant.

J=E9r=F4me

GNU Emacs 22.3.1

2 réponses

Avatar
Luc.Habert.00__arjf
Jérôme :

Y a t il la possibilité de de mettre du "négatif" dans les regexp de
Emacs ?
D'après ce que j'ai vu dans le manuel, c'est non. Je cherchais une
confirmation.



Je confirme. C'est super pénible, mais c'est comme ça. Il y a des raisons de
complexité de l'algorithme de déterminisation de l'automate, qui devient
démentielle quand on imbrique plein de négations, mais il y a quand même
énormément de cas où l'on veut juste une négation, ça ne tuerait pas la
complexité du bouzin de l'autoriser, et ça aiderait beaucoup.
Avatar
Jacques L'helgoualc'h
Le 15-01-2009, Jérôme a écrit :
Bonjour



bonjour,

J'ai un fichier de sortie dans lequel je veux chercher le mot "errors"
en excluant les cas du type "no errors"
[...]
PS : je sais que "[^nN][^oO][^ ]errors" est possible. Je cherchais
quelque chose de plus élégant.



Pour illustrer la complexité évoquée par Luc, ce serait plutôt du genre

"([^ ]|[^Oo] |[^nN]o |^.{0,2})<errors?>"

--
Jacques L'helgoualc'h