J'explique un peu mon titre. Il me semble avoir vu un jour en parcourant
des fichiers de Philippe, une commande permettant de changer $(blabla)$
en $\left(blabla\right)$ dans un fichier .tex.
Je ne sais pas si j'ai rêvé cela (je ne crois pas) mais en tous cas à
l'époque c'était du chinois pour moi (je n'ai pas pris de notes, et pas
moyen de retrouver le fichier...) mais maintenant j'essaierais bien.
Est-ce que quelqu'un voit à quoi je fais référence? Philippe, si vous
passez par là...
À (at) Wed, 04 Jan 2012 12:01:50 +0100, Daimrod écrivait (wrote):
Les délimiteurs, comme les parenthèses, vont par pair, donc il faut les manipuler ensemble. Mais une expression régulière ne permet pas de gérer des délimiteurs lorsqu'ils sont imbriqués.
Pour être plus précis, une expression régulière ne permet pas de gérer des délimiteurs lorsqu'ils sont imbriqués sur un nombre de niveaux non limité.
Si on sait que l'imbrication ne dépasse pas n niveaux alors on peut créer une expression régulière qui marche jusqu'au niveau n.
Par ailleurs, il existe des moteurs de regex étendus (comme celui de Perl) qui gèrent cela.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
À (at) Wed, 04 Jan 2012 12:01:50 +0100,
Daimrod <daimrod@gmail.com> écrivait (wrote):
Les délimiteurs, comme les parenthèses, vont par pair, donc il faut les
manipuler ensemble. Mais une expression régulière ne permet pas de gérer
des délimiteurs lorsqu'ils sont imbriqués.
Pour être plus précis, une expression régulière ne permet pas de gérer
des délimiteurs lorsqu'ils sont imbriqués sur un nombre de niveaux non
limité.
Si on sait que l'imbrication ne dépasse pas n niveaux alors on peut
créer une expression régulière qui marche jusqu'au niveau n.
Par ailleurs, il existe des moteurs de regex étendus (comme celui de
Perl) qui gèrent cela.
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
À (at) Wed, 04 Jan 2012 12:01:50 +0100, Daimrod écrivait (wrote):
Les délimiteurs, comme les parenthèses, vont par pair, donc il faut les manipuler ensemble. Mais une expression régulière ne permet pas de gérer des délimiteurs lorsqu'ils sont imbriqués.
Pour être plus précis, une expression régulière ne permet pas de gérer des délimiteurs lorsqu'ils sont imbriqués sur un nombre de niveaux non limité.
Si on sait que l'imbrication ne dépasse pas n niveaux alors on peut créer une expression régulière qui marche jusqu'au niveau n.
Par ailleurs, il existe des moteurs de regex étendus (comme celui de Perl) qui gèrent cela.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
JJ. Rétorré
Stéphane Dutailly disait le 01/03/12 que :
Un simple(?) query-replace-regexp peut le faire. C-M-% $(([^$]*))$<RET> $left(1right)$<RET> On peut toujours en faire une fonction interactive, ou plus simplement une macro de clavier.
Merci Jean-Jacques, je n'envisageais pas cela car pour l'instant je n'ai jamais cherché à utiliser/comprendre les expressions régulières (cela me paraît encore très obscur) et puis mon idée est aussi d'utiliser le code pour l'adapter; mais du coup, je vais peut-être pouvoir aussi me lancer sur les expressions régulières ;-)
Stéphane
Ma science des regexp est toute récente, mais je trouve que c'est tellement puissant que c'est vraiment indispensable. Je me suis lancé grâce à ce newsgroup et au TeXnicien de surface qui m'a donné un sérieux coup de main.
-- JJR.
Stéphane Dutailly <dutaillys@yahoo.fr> disait le 01/03/12 que :
Un simple(?) query-replace-regexp peut le faire.
C-M-% $(([^$]*))$<RET> $\left(1\right)$<RET>
On peut toujours en faire une fonction interactive, ou plus simplement
une macro de clavier.
Merci Jean-Jacques, je n'envisageais pas cela car pour l'instant je
n'ai jamais cherché à utiliser/comprendre les expressions régulières
(cela me paraît encore très obscur) et puis mon idée est aussi
d'utiliser le code pour l'adapter; mais du coup, je vais peut-être
pouvoir aussi me lancer sur les expressions régulières ;-)
Stéphane
Ma science des regexp est toute récente, mais je trouve que c'est
tellement puissant que c'est vraiment indispensable.
Je me suis lancé grâce à ce newsgroup et au TeXnicien de surface qui m'a
donné un sérieux coup de main.
Un simple(?) query-replace-regexp peut le faire. C-M-% $(([^$]*))$<RET> $left(1right)$<RET> On peut toujours en faire une fonction interactive, ou plus simplement une macro de clavier.
Merci Jean-Jacques, je n'envisageais pas cela car pour l'instant je n'ai jamais cherché à utiliser/comprendre les expressions régulières (cela me paraît encore très obscur) et puis mon idée est aussi d'utiliser le code pour l'adapter; mais du coup, je vais peut-être pouvoir aussi me lancer sur les expressions régulières ;-)
Stéphane
Ma science des regexp est toute récente, mais je trouve que c'est tellement puissant que c'est vraiment indispensable. Je me suis lancé grâce à ce newsgroup et au TeXnicien de surface qui m'a donné un sérieux coup de main.
-- JJR.
Stéphane Dutailly
Est-ce que quelqu'un voit à quoi je fais référence?
Oui :)
Philippe, si vous passez par là...
http://tinyurl.com/6uz8899
Super! Merci beaucoup :-) :-)
Stéphane
Est-ce que quelqu'un voit à quoi je fais référence?
Est-ce que quelqu'un voit à quoi je fais référence?
Oui :)
Philippe, si vous passez par là...
http://tinyurl.com/6uz8899
Super! Merci beaucoup :-) :-)
Stéphane
Pascal J. Bourguignon
Daimrod writes:
Ah j'avais oublié les regexp étendues, mais je ne les ai jamais utilisées et je ne crois pas quelles soient disponibles dans emacs.
Par définition, des regexp "étendues" ne sont plus des expressions régulières!
Cependant, même pour n niveau d'imbrication (n ≥ 3) ou avec des regexp étendues, je choisirai plutôt de faire une fonction car je trouve qu'un algorithme sera plus simple à comprendre qu'une expression régulière. Mais c'est peut être une question d'habitude.
-- __Pascal Bourguignon__ http://www.informatimago.com/ A bad day in () is better than a good day in {}.
Daimrod <daimrod@gmail.com> writes:
Ah j'avais oublié les regexp étendues, mais je ne les ai jamais
utilisées et je ne crois pas quelles soient disponibles dans emacs.
Par définition, des regexp "étendues" ne sont plus des expressions
régulières!
Cependant, même pour n niveau d'imbrication (n ≥ 3) ou avec des regexp
étendues, je choisirai plutôt de faire une fonction car je trouve
qu'un algorithme sera plus simple à comprendre qu'une expression
régulière. Mais c'est peut être une question d'habitude.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
Ah j'avais oublié les regexp étendues, mais je ne les ai jamais utilisées et je ne crois pas quelles soient disponibles dans emacs.
Par définition, des regexp "étendues" ne sont plus des expressions régulières!
Cependant, même pour n niveau d'imbrication (n ≥ 3) ou avec des regexp étendues, je choisirai plutôt de faire une fonction car je trouve qu'un algorithme sera plus simple à comprendre qu'une expression régulière. Mais c'est peut être une question d'habitude.
-- __Pascal Bourguignon__ http://www.informatimago.com/ A bad day in () is better than a good day in {}.
(1 (2 3 4 (5 6) 7 8) 9 10) ----------------------^ Si mon curseur se trouve ici je veux manipuler ^------------------------^ ces parenthèses, pas les autres.
(1 (2 3 4 (5 6) 7 8) 9 10)
----------------------^ Si mon curseur se trouve ici je veux manipuler
^------------------------^ ces parenthèses, pas les autres.
(1 (2 3 4 (5 6) 7 8) 9 10) ----------------------^ Si mon curseur se trouve ici je veux manipuler ^------------------------^ ces parenthèses, pas les autres.