je ne parviens pas à construire avec Emacs, une expression régulière
qui « matcherait » plusieurs lignes.
Par exemple :
int f( double a,
double b,
double c );
je voudrais matcher la déclaration de cette fonction.
J'essaye .*([.\n\t ]*).*; et des variantes de ce genre, mais sans
parvenir au résultat :-/
Auriez vous une idée sur la façon de faire cela ?
je ne parviens pas à construire avec Emacs, une expression régulière qui « matcherait » plusieurs lignes.
Par exemple :
int f( double a, double b, double c );
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
Ph. Ivaldi
Le 04 mai 2007, (Luc Habert)écrivit :
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça: (int f((.|n)*).?;) Tester avec M-x re-builder <RET> -- Philippe Ivaldi. http://piprim.tuxfamily.org/
Le 04 mai 2007, Luc.Habert.00__arjf@normalesup.org (Luc Habert)écrivit :
je voudrais matcher la déclaration de cette fonction.
J'essaye .*([.nt ]*).*;
(.|
)
pour « un caractère ou un retour à la ligne ». Tu entres le retour à
la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça:
\(int f(\(.\|n\)*).?;\)
Tester avec M-x re-builder <RET>
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
je ne parviens pas à construire avec Emacs, une expression régulière qui « matcherait » plusieurs lignes.
Par exemple :
int f( double a, double b, double c );
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
Aaah merci !
Par curiosité, pourquoi n n'est il pas utilisable ici ?
(.|n)
-- Fab
fabien.chene
Ph. Ivaldi writes:
Le 04 mai 2007, (Luc Habert)écrivit :
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça: (int f((.|n)*).?;)
Cela fonctionne-t'il pour vous avec n ? Bizarre, cela n'a pas l'air de fonctionner pour moi. Dans le manual d'E-Lisp, il est fait référence à n pour désigner un retour à la ligne, mais ça ne marche pas pour moi (?)
Tester avec M-x re-builder <RET>
Excellent mode pour tester les expressions régulières. Merci de l'avoir indiqué !
-- Fab
Ph. Ivaldi <piv_pasde@pub_tele2.fr> writes:
Le 04 mai 2007, Luc.Habert.00__arjf@normalesup.org (Luc Habert)écrivit :
je voudrais matcher la déclaration de cette fonction.
J'essaye .*([.nt ]*).*;
(.|
)
pour « un caractère ou un retour à la ligne ». Tu entres le retour à
la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça:
\(int f(\(.\|n\)*).?;\)
Cela fonctionne-t'il pour vous avec n ? Bizarre, cela n'a pas l'air
de fonctionner pour moi.
Dans le manual d'E-Lisp, il est fait référence à n pour désigner un
retour à la ligne, mais ça ne marche pas pour moi (?)
Tester avec M-x re-builder <RET>
Excellent mode pour tester les expressions régulières. Merci de
l'avoir indiqué !
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça: (int f((.|n)*).?;)
Cela fonctionne-t'il pour vous avec n ? Bizarre, cela n'a pas l'air de fonctionner pour moi. Dans le manual d'E-Lisp, il est fait référence à n pour désigner un retour à la ligne, mais ça ne marche pas pour moi (?)
Tester avec M-x re-builder <RET>
Excellent mode pour tester les expressions régulières. Merci de l'avoir indiqué !
-- Fab
fabien.chene
(Fabien Chêne) writes:
Ph. Ivaldi writes:
Le 04 mai 2007, (Luc Habert)écrivit :
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça: (int f((.|n)*).?;)
Cela fonctionne-t'il pour vous avec n ? Bizarre, cela n'a pas l'air de fonctionner pour moi.
Bon, j'avais du commettre une faute de frappe, cela fonctionne parfaitement, merci.
-- Fab
fabien.chene@gmail.com (Fabien Chêne) writes:
Ph. Ivaldi <piv_pasde@pub_tele2.fr> writes:
Le 04 mai 2007, Luc.Habert.00__arjf@normalesup.org (Luc Habert)écrivit :
je voudrais matcher la déclaration de cette fonction.
J'essaye .*([.nt ]*).*;
(.|
)
pour « un caractère ou un retour à la ligne ». Tu entres le retour à
la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça:
\(int f(\(.\|n\)*).?;\)
Cela fonctionne-t'il pour vous avec n ? Bizarre, cela n'a pas l'air
de fonctionner pour moi.
Bon, j'avais du commettre une faute de frappe, cela fonctionne
parfaitement, merci.
je voudrais matcher la déclaration de cette fonction. J'essaye .*([.nt ]*).*;
(.| )
pour « un caractère ou un retour à la ligne ». Tu entres le retour à la ligne avec « C-q C-j ».
On peut aussi utiliser quelque chose comme ça: (int f((.|n)*).?;)
Cela fonctionne-t'il pour vous avec n ? Bizarre, cela n'a pas l'air de fonctionner pour moi.
Bon, j'avais du commettre une faute de frappe, cela fonctionne parfaitement, merci.
-- Fab
fabien.chene
Matthieu Moy writes:
(Fabien Chêne) writes:
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Ça dépends du contexte.
n est spécial pour les chaines de caractères Emacs, mais je crois pas pour les expressions régulières. Donc, dans de l'Emacs-lisp, tu pourras écrire
"(.|n)"
qu'Emacs verra, après avoir parsé la chaine, comme
(.| )
Mais si c'est dans une commande interactive où on te demande directement le contenu de la chaine, et pas le littéral chaine avec les « " » autour, tu n'as plus droit aux séquences d'échappement des chaines elisp.
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Ça dépends du contexte.
n est spécial pour les chaines de caractères Emacs, mais je crois pas
pour les expressions régulières. Donc, dans de l'Emacs-lisp, tu
pourras écrire
"\(.\|n\)"
qu'Emacs verra, après avoir parsé la chaine, comme
(.|
)
Mais si c'est dans une commande interactive où on te demande
directement le contenu de la chaine, et pas le littéral chaine avec
les « " » autour, tu n'as plus droit aux séquences d'échappement des
chaines elisp.
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Ça dépends du contexte.
n est spécial pour les chaines de caractères Emacs, mais je crois pas pour les expressions régulières. Donc, dans de l'Emacs-lisp, tu pourras écrire
"(.|n)"
qu'Emacs verra, après avoir parsé la chaine, comme
(.| )
Mais si c'est dans une commande interactive où on te demande directement le contenu de la chaine, et pas le littéral chaine avec les « " » autour, tu n'as plus droit aux séquences d'échappement des chaines elisp.
Merci pour l'explication !
-- Fab
Luc.Habert.00__arjf
Fabien Chêne :
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Paskeu...
Fabien Chêne :
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Paskeu...
Matthieu Moy
(Fabien Chêne) writes:
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Ça dépends du contexte.
n est spécial pour les chaines de caractères Emacs, mais je crois pas pour les expressions régulières. Donc, dans de l'Emacs-lisp, tu pourras écrire
"(.|n)"
qu'Emacs verra, après avoir parsé la chaine, comme
(.| )
Mais si c'est dans une commande interactive où on te demande directement le contenu de la chaine, et pas le littéral chaine avec les « " » autour, tu n'as plus droit aux séquences d'échappement des chaines elisp.
-- Matthieu
fabien.chene@gmail.com (Fabien Chêne) writes:
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Ça dépends du contexte.
n est spécial pour les chaines de caractères Emacs, mais je crois pas
pour les expressions régulières. Donc, dans de l'Emacs-lisp, tu
pourras écrire
"\(.\|n\)"
qu'Emacs verra, après avoir parsé la chaine, comme
(.|
)
Mais si c'est dans une commande interactive où on te demande
directement le contenu de la chaine, et pas le littéral chaine avec
les « " » autour, tu n'as plus droit aux séquences d'échappement des
chaines elisp.
Par curiosité, pourquoi n n'est il pas utilisable ici ?
Ça dépends du contexte.
n est spécial pour les chaines de caractères Emacs, mais je crois pas pour les expressions régulières. Donc, dans de l'Emacs-lisp, tu pourras écrire
"(.|n)"
qu'Emacs verra, après avoir parsé la chaine, comme
(.| )
Mais si c'est dans une commande interactive où on te demande directement le contenu de la chaine, et pas le littéral chaine avec les « " » autour, tu n'as plus droit aux séquences d'échappement des chaines elisp.