J'ai écrit une expression régulière dans l'espoir de pouvoir remplacer chaque correspondance (c'est-à-dire juste un caractère) par des caractères majuscules. J'utilise EditPad Pro (cependant, je suis prêt à utiliser tout autre outil qui me permettrait de le faire, à condition qu'il soit gratuit, car je n'ai besoin de le faire qu'une seule fois).
Contexte: J'ai un très long fichier texte utilisé par une application sensible à la casse, et certains mots commencent par des minuscules au lieu de majuscules, ce qui fait planter l'application. Cela prendrait beaucoup de temps à faire à la main, et il serait assez compliqué de se passer d'expressions régulières car l'occurrence du (mauvais) caractère minuscule est très spécifique.
J'ai écrit l'expression régulière select et maintenant je peux l'utiliser avec une référence arrière ($ 1 fonctionne très bien) mais je ne peux pas la remplacer par un caractère majuscule. Je pensais que quelque chose comme \ u $ 1 fonctionnerait, mais ce n'est pas le cas dans EditPad Pro.
Si aucun outil gratuit ne me permet de le faire, je suppose que l'alternative serait de le faire simplement en C # mais je suis un peu pressé et pas près d'un compilateur, donc je devrais d'abord télécharger l'édition express, donc ... Il serait préférable de trouver un outil prenant en charge une telle fonctionnalité!
Je vous remercie!
Réponses:
TextPad vous permettra d'effectuer cette opération.
exemple:
Trouver quoi:
\([^ ]*\) \(.*\)
Remplacer par:\U\1\E \2
le
\U
fera que tous les caractères suivants seront supérieursle
\E
désactivera le\U
le résultat sera:
la source
ToUpper
)?\U$1\E
dans Sublime Text\U\1\E
dans Vim\L$1\E
travaillé.Je sais que ce fil concerne EditPad Pro, mais je suis venu ici parce que j'avais le même besoin avec une expression rationnelle javascript.
Pour les personnes qui ont besoin du même conseil, vous pouvez utiliser une fonction ou lambda comme argument de remplacement.
J'utilise la fonction ci-dessous pour convertir les noms css avec
-
l'équivalent javascript, par exemple,"border-top"
seront transformés en"borderTop"
:la source
Source: Goyvaerts, janvier (2006). Expressions régulières: le didacticiel complet . Lulu.com. p. 35 . ISBN 1411677609. Google Books. Récupéré le 25 juin 2010.
la source
Vous pouvez le faire dans jEdit, en utilisant l'option "Valeur de retour d'un extrait de code BeanShell" dans la boîte de dialogue de recherche et de remplacement de jEdit. Recherchez
" [a-z]"
et remplacez-le par" _0.toUpperCase()"
(sans guillemets)la source
Vous pouvez également mettre en majuscule la première lettre de la correspondance en utilisant
\I1
et\I2
etc au lieu de$1
et$2
.la source
Juste un autre exemple d'utilisation pour Notepad ++ (mode de recherche d'expression régulière)
Exemple:
la source