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

changer la casse dans le texte de remplacement

5 réponses
Avatar
Le TeXnicien de Surface
bonjour

je voudrais pouvoir changer la casse du texte de remplacement dans une
recherche-remplacement avec regexp.

Je cherche quelque chose comme AB avec "\([^"]\)"
et je voudrais récupérer AB (ça c'est facile :) ) Ab, aB et ab
C'est-y possible ?

Avec mes remerciements anticipés.

--
Le TeXnicien de Surface

5 réponses

Avatar
Sébastien Kirche
Le 11 avril 2007 à 11:42, Le TeXnicien de Surface s'est exprimé ainsi :

bonjour



Bonjour,

je voudrais pouvoir changer la casse du texte de remplacement dans une
recherche-remplacement avec regexp.

Je cherche quelque chose comme AB avec "([^"])"
et je voudrais récupérer AB (ça c'est facile :) ) Ab, aB et ab
C'est-y possible ?



Je ne suis pas sûr de comprendre la problématique correctement sur
« changer la casse du texte », mais est-ce que toggle-case-fold-search
et case-fold-search pour ne pas tenir compte de la casse peuvent aider ?

Avec mes remerciements anticipés.



Et ma réponse un peu tardive :)

--
Sébastien Kirche
Avatar
Damien Wyart
Le 11 avril 2007 à 11:42, Le TeXnicien de Surface s'est exprimé ainsi :
[...]



Juste une remarque HS en passant : comme je lis depuis le serveur de
Free, les messages du TeXnicien de Surface sont filtrés (histoire de
codage Unicode, il me semble), et c'est assez dommage (les fils sont
complètement cassés, idem sur fctt). Comme je ne pense pas que Free va
changer sa politique, est-ce qu'il ne vous est vraiment pas possible de
modifier vos réglages pour éviter ce problème ?

--
DW
Avatar
Le TeXnicien de Surface
Sébastien Kirche écrivait :
Le 11 avril 2007 à 11:42, Le TeXnicien de Surface s'est exprimé ainsi :
bonjour


Bonjour,


Et rebonjour
(en iso-8859-1, cette fois puisqu'il semble que FREE n'aime pas utf-8)

je voudrais pouvoir changer la casse du texte de remplacement dans une
recherche-remplacement avec regexp.
Je cherche quelque chose comme AB avec "([^"])"
et je voudrais récupérer AB (ça c'est facile :) ) Ab, aB et ab
C'est-y possible ?



Je ne suis pas sûr de comprendre la problématique correctement sur
« changer la casse du texte », mais est-ce que toggle-case-fold-search
et case-fold-search pour ne pas tenir compte de la casse peuvent aider ?


Je vais tenter d'être plus clair :
avec "([^""]*)" je récupère une paire de lettres comme « AB »,
ce que je voudrais c'est remplacer ce texte « AB » par le texte
« AB Ab aB ab » créé automatiquement par une commande adéquate dans
l'expression de remplacement, quelque chose comme U1 l1 etc
Alors la question est encore : c'est-y possible ?
Avec mes remerciements anticipés.



Et ma réponse un peu tardive :)


Tout vient à point à qui sait attendre ;)

--
Le TeXnicien de Surface
Avatar
Damien Wyart
* Le TeXnicien de Surface
in fr.comp.applications.emacs:
(en iso-8859-1, cette fois puisqu'il semble que FREE n'aime pas utf-8)



Cela fonctionne, merci !

Je vais tenter d'être plus clair :
avec "([^""]*)" je récupère une paire de lettres comme « AB »,
ce que je voudrais c'est remplacer ce texte « AB » par le texte
« AB Ab aB ab » créé automatiquement par une commande adéquate dans
l'expression de remplacement, quelque chose comme U1 l1 etc
Alors la question est encore : c'est-y possible ?



Directement je ne crois pas, Il faudrait sans doute ruser en elisp, mais
je n'ai pas le temps de regarder en détail maintenant...

--
DW
Avatar
Le TeXnicien de Surface
Damien Wyart écrivait :

* Le TeXnicien de Surface
in fr.comp.applications.emacs:
(en iso-8859-1, cette fois puisqu'il semble que FREE n'aime pas utf-8)



Cela fonctionne, merci !

Je vais tenter d'être plus clair :
avec "([^""]*)" je récupère une paire de lettres comme « AB »,
ce que je voudrais c'est remplacer ce texte « AB » par le texte
« AB Ab aB ab » créé automatiquement par une commande adéquate dans
l'expression de remplacement, quelque chose comme U1 l1 etc
Alors la question est encore : c'est-y possible ?



Directement je ne crois pas, Il faudrait sans doute ruser en elisp, mais
je n'ai pas le temps de regarder en détail maintenant...



Bon, une suggestion sur le forum anglais m'a mis sur la voix :
j'ai utilisé query-replace-regexp-eval
le texte cherché était de la forme « c="AB" »
j'ai utilisé la regexp de recherche : « c="([A-Z])([A-Z])" »
et en remplacement l'expression suivante :

(concat "c="" (upcase 1) (upcase 2) "" or c= "" (upcase 1)
(downcase 2) "" or c= "" (downcase 1) (upcase 2)
"" or c= "" (downcase 1) (downcase 2) """)

et « c="HG" » devient « c="HG" or c="Hg" or c="hG" or c="hg" »

et YOUPIIII ! ;;; si je puis me permettre ;-)
jeqçs
--
Le TeXnicien de Surface