aide replace-regexp

Le
Jean Magnan de Bornier
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
--
Jean
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #21786871
Jean Magnan de Bornier :

(replace-match "\stoptable" nil t))



Ça devrait marcher mieux avec « "\\stoptable" ».
Jean Magnan de Bornier
Le #21786861
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
Jean Magnan de Bornier
Le #21786851
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
Sébastien Kirche
Le #21786831
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
Jean Magnan de Bornier
Le #21786821
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
Publicité
Poster une réponse
Anonyme