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

aide replace-regexp

5 réponses
Avatar
Jean Magnan de Bornier
Bonsoir =E0 tous

j'ai un bout de code elisp:

(while (search-backward "\\VL \\stoptable" nil t)
(replace-match "\\stoptable" nil t))

Le r=E9sultat est, bizarrement pour l'amateur que je suis:

\textbackslashstoptable=20

alors que j'esp=E8re simplement \stoptable; j'ai
essay=E9 de ne pas =E9chapper l'oblique:

(while (search-backward "\\VL \\stoptable" nil t)
(replace-match "\stoptable" nil t))=20

mais c'est pire (quelque chose comme able...)

Aide et explication seront appr=E9ci=E9es, merci d'avance
--=20
Jean

5 réponses

Avatar
Luc.Habert.00__arjf
Jean Magnan de Bornier :

(replace-match "stoptable" nil t))



Ça devrait marcher mieux avec « "\stoptable" ».
Avatar
Jean Magnan de Bornier
Le 15 avril à 20:09:48 (Luc Habert)
écrit notamment:

| Jean Magnan de Bornier :



| > (replace-match "stoptable" nil t))



| Ça devrait marcher mieux avec « "\stoptable" ».

Voilà le résultat :-(

textbackslashtextbackslashstoptable

j'ai aussi essayé avec trois "", mais c'est encore à côté...
--
Jean
Avatar
Jean Magnan de Bornier
Le 15 avril à 21:47:54 Jean Magnan de Bornier
écrit notamment:

| Bonsoir à tous



| j'ai un bout de code elisp:



| (while (search-backward "VL stoptable" nil t)
| (replace-match "stoptable" nil t))



| Le résultat est, bizarrement pour l'amateur que je suis:



| textbackslashstoptable



| alors que j'espère simplement stoptable; j'ai
| essayé de ne pas échapper l'oblique:



| (while (search-backward "VL stoptable" nil t)
| (replace-match "stoptable" nil t))



| mais c'est pire (quelque chose comme able...)



| Aide et explication seront appréciées, merci d'avance

J'ai trouvé une autre manière qui donne le résultat désiré:

(while (search-backward "VL stoptable" nil t)
(replace-match "stoptable" nil t))

mais je suis touours curieux d'une explication...
merci
--
Jean
Avatar
Sébastien Kirche
Le 15 avril 2007 à 22:20, Jean Magnan de Bornier vraute :

> Jean Magnan de Bornier :
>
> > (replace-match "stoptable" nil t))
>
> Ça devrait marcher mieux avec « "\stoptable" ».

Voilà le résultat :-(

textbackslashtextbackslashstoptable

j'ai aussi essayé avec trois "", mais c'est encore à côté...



Pour ne pas t'embêter à compter les échappements quand ça devient assez
ardu, tu devrais regarder M-x re-builder.

Tu te mets en mode 'read' (C-c TAB read RET) pour tester la regexp et
quand ça fonctionne, tu bascules en mode 'string' et emacs te traduit la
chaîne à placer dans les doubles quotes de replace-match. Un coup de
copy (C-c C-w) et hop c'est bon (C-c C-q).

:)
--
Sébastien Kirche
Avatar
Jean Magnan de Bornier
Le 16 avril à 21:33:55 Sébastien Kirche

écrit notamment:

| Le 15 avril 2007 à 22:20, Jean Magnan de Bornier vraute :



| > > Jean Magnan de Bornier :
| > >
| > > > (replace-match "stoptable" nil t))
| > >
| > > Ça devrait marcher mieux avec « "\stoptable" ».
| >
| > Voilà le résultat :-(
| >
| > textbackslashtextbackslashstoptable
| >
| > j'ai aussi essayé avec trois "", mais c'est encore à côté...



| Pour ne pas t'embêter à compter les échappements quand ça devient assez
| ardu, tu devrais regarder M-x re-builder.



| Tu te mets en mode 'read' (C-c TAB read RET) pour tester la regexp et
| quand ça fonctionne, tu bascules en mode 'string' et emacs te traduit la
| chaîne à placer dans les doubles quotes de replace-match. Un coup de
| copy (C-c C-w) et hop c'est bon (C-c C-q).



| :)

Ça m'a l'air très intéressant! merci pour l'info, je vais creuser re- builder
--
Jean