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

Remplacement de « : [A-Z] » par « : [a-z] »

20 réponses
Avatar
Denis Bitouzé
Bonjour,

=E0 nouveau mes probl=E8mes de regexp : je souhaiterais faire remplacer
(interactivement) les s=E9quences du genre

: <majuscule>

par

: <minuscule>

J'ai tent=E9

C-M-% : [A-Z] RET : [a-z] RET

mais =E7a me remplace par exemple

: Salut

par

: [a-z]alut

J'ai l'air malin !

Merci d'avance pour toute suggestion...
--=20
Denis

10 réponses

1 2
Avatar
Le TeXnicien de Surface
Denis Bitouzé écrivait :

Bonjour,


Salut Denis,
à nouveau mes problèmes de regexp : je souhaiterais faire remplacer
(interactivement) les séquences du genre
: <majuscule>
par
: <minuscule>



[coupe]
J'ai l'air malin !


Plus que d'habitude ! Prends une photo, stp ;-)

Merci d'avance pour toute suggestion...



Je te recopie le résumé de mes conclusions après de semblables tribulations
sur gnu.emacs

I succeeded with query-replace-regexp-eval and the following
(I must say here that the text I work with is in the form « c="AB" »
and that I want to obtain « c="AB" or c="Ab" or c="aB" or c="ab" » from it)

Here the searching regexp « c="([A-Z)([A-Z])" »
and here the expression evaluated

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

--
Le TeXnicien de Surface
Avatar
Matthieu Moy
Denis Bitouzé writes:

Bonjour,

à nouveau mes problèmes de regexp : je souhaiterais faire remplacer
(interactivement) les séquences du genre

: <majuscule>

par

: <minuscule>



Un truc genre :

M-x replace-regexp RET : ([a-z)) RET : ,(downcase 1) RET

--
Matthieu
Avatar
Denis Bitouzé
Le Wed, 14 Nov 2007 13:27:09 +0100
Le TeXnicien de Surface a écrit :

> J'ai l'air malin !
Plus que d'habitude ! Prends une photo, stp ;-)



On est prié de me croire sur parole, nan mèèèèè ! ;)

Je te recopie le résumé de mes conclusions après de semblables
tribulations sur gnu.emacs

I succeeded with query-replace-regexp-eval and the following
(I must say here that the text I work with is in the form « c="AB" »
and that I want to obtain « c="AB" or c="Ab" or c="aB" or c="ab " »
from it)

Here the searching regexp « c="([A-Z)([A-Z])" »
and here the expression evaluated

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



Euh, fais excuse, mais je n'ai strictement *rien* compris. Peux-tu me
traduire par un truc du genre :

M-x query-replace-regexp-eval RET ... RET ... RET

le remplacement de « : [A-Z] » par « : [a-z] » ? Oh oui, ce serait si
gentil ! :)
--
Denis
Avatar
Denis Bitouzé
Le Wed, 14 Nov 2007 14:24:06 +0100
Matthieu Moy a écrit :

Un truc genre :

M-x replace-regexp RET : ([a-z)) RET : ,(downcase 1) RET



Plus précisément (avec l'interactivité en plus) :

query-replace-regexp RET : ([A-Z]) RET : ,(downcase 1) RET

(Presque) parfait, merci ! ;)
--
Denis
Avatar
Denis Bitouzé
Le Wed, 14 Nov 2007 06:37:37 -0800
bob de brest a écrit :

un petit M-x downcase-region sur la region de ton choix ne te suffit
pas ?



Ah, ça je connais (raccourci C-x C-l) mais, ici, il me fallait
rechercher tous les :

: <majuscule>

(deux points suivis d'un espace puis d'une majuscule, quelle qu'elle
soit)

pour les remplacer par des

: <minuscule>

(deux points suivis d'un espace puis de la minuscule de la lettre
majuscule de tout à l'heure).

En tous cas, merci.
--
Denis
Avatar
Matthieu Moy
Denis Bitouzé writes:

Le Wed, 14 Nov 2007 06:37:37 -0800
bob de brest a écrit :

un petit M-x downcase-region sur la region de ton choix ne te suffit
pas ?



Ah, ça je connais (raccourci C-x C-l) mais,



Tu as aussi

C-x ( C-s : RET C-l C-x ) C-x e C-x e C-x e ...

--
Matthieu
Avatar
Denis Bitouzé
Le Wed, 14 Nov 2007 20:17:22 +0100
Matthieu Moy a écrit :

C-x e C-x e C-x e ...



1637 fois ? Argh !
--
Denis
Avatar
Erwan David
Denis Bitouzé écrivait :

Le Wed, 14 Nov 2007 20:17:22 +0100
Matthieu Moy a écrit :

C-x e C-x e C-x e ...



1637 fois ? Argh !



C-u 1637 C-x e

alors

--
À peu près tout ce qu'on peut imaginer de débile en informatique
finit par exister un jour ou l'autre. (BB)
Avatar
Matthieu Moy
Denis Bitouzé writes:

Le Wed, 14 Nov 2007 20:17:22 +0100
Matthieu Moy a écrit :

C-x e C-x e C-x e ...



1637 fois ? Argh !



Avec Emacs 22, on peut aussi faire « C-x e » une fois, puis juste
« e » pour répéter. 1637 fois, ça fait beaucoup, mais le doigt appuyé
sur « e » pendant quelques secondes, ça en fait déjà quelques
dizaines ;-). Enfin, comme le dis Erwan, y'a quand même C-u 42 C-x e
pour refaire exactement 42 fois l'action, donc, sauvé !

En fait, je trouve ces keyboard-macros super pratiques pour des tâches
semi-automatiques, c'est à dire, systématiques et chiantes à faire à
la main, mais pas dans un contexte où on a forcément envie de
s'embêter à écrire un bout de code lisp ou une regexp qui gère bien
tous les cas. Ça permet de réutiliser les raccourcis claviers qu'on a
hardcodé dans les doigts ;-).

--
Matthieu
Avatar
Luc.Habert.00__arjf
D'autant qu'il y a des cas qu'on ne peut pas traiter avec des regexps.
1 2