J'essaie de remplacer les lettres majuscules par des lettres minuscules correspondantes en utilisant regex .
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
devient
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
en texte sublime. Comment puis-je minimiser les lettres uniquement avec des mots contenant à la fois des lettres minuscules et majuscules? Pour que cela affecte venUs
et non VENUS
.
Tu peux:
Rechercher: (\w)
Remplacer par: \L$1
Ou sélectionnez le texte, ctrl+K+L.
J'ai pensé que cela pourrait être utile pour d'autres aussi:
trouver:
([A-Z])(.*)
remplacer:
\L$1$2
-> convertira toutes les lettres en $1
et $2
en minuscules\l$1$2
-> convertira uniquement la première lettre de $1
en minuscule et laissera tout le reste tel quel.Il en va de même pour les majuscules avec \U
et \u
Avant de chercher avec regex comme [A-Z]
, vous devez appuyer sur le bouton respectant la casse (ou Alt+C) (comme leemour est joliment suggéré à modifier dans la réponse acceptée). Juste pour être clair, je laisse quelques autres exemples:
(\s)([a-z])
(\s
correspond également aux nouvelles lignes, c.-à-d. "VenuS" => "VenuS")$1\u$2
(\s)([A-Z])
$1\l$2
([a-z])([A-Z])
$1\l$2
(\w)([A-Z]+)
$1\L$2
\L$0
(\w)([A-Z]+)
$1\U$2
(\w+)([A-Z])
\U$1$2
(\w+)([A-Z])
\L$1$2
([A-Z])(\w+)
$1\U$2
([A-Z])(\w+)
$1\L$2
([a-z\s])([A-Z])(\w)
$1\l$2\u$3
(\w)([A-Z])([a-z\s])
\u$1\l$2$3
Concernant la question (faites correspondre les mots avec au moins une lettre majuscule et une lettre minuscule et mettez-les en minuscule), commentaire-réponse de leemour est la bonne réponse . Juste pour clarifier, s'il n'y a qu'un seul groupe à remplacer, vous pouvez simplement utiliser ?:
dans les groupes internes (c'est-à-dire groupes non capturés ) ou éviter de les créer du tout:
((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))
OR ([a-z][A-Z]+|[A-Z]+[a-z])
\L$1
Tyler suggéré en éditant cette réponse une autre expression de recherche pour # 4:
(\B)([A-Z]+)
Conformément à la documentation , \B
cherchera un caractère qui ne se trouve pas à la limite du mot (c'est-à-dire pas au début ni à la fin). Vous pouvez utiliser le bouton Remplacer tout pour obtenir exactement la même chose que si vous aviez (\w)([A-Z]+)
comme expression de recherche.
Cependant, l'inconvénient de \B
est qu'il ne permet pas les remplacements simples, peut-être en raison de la restriction "non limite" de de find (modifiez-le si vous connaissez la raison exacte ).
Expression régulière
Trouver : \w+
Remplacer : \L$0
Sublime Text utilise les expressions régulières compatibles Perl (PCRE) moteur de la bibliothèque Boost pour alimenter les expressions régulières dans les recherches panneaux.
\L
Convertit tout en minuscule
$0
groupes de capture
Essaye ça
([A-Z])([A-Z]+)\b
$1\L$2
Assurez-vous que la sensibilité à la casse est activée (Alt + C)
Dans BBEdit, cela fonctionne (par exemple: changer les valeurs d’ID en minuscules):
Recherchez une valeur quelconque: <a id="(?P<x>.*?)"></a>
Remplacez-la par la même chose en minuscule: <a id="\L\P<x>\E"></a>
Était: <a id="VALUE"></a>
Devenu: <a id="value"></a>