web-dev-qa-db-fra.com

Regex remplace les majuscules par des minuscules

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.

152
leemour

Tu peux:

Rechercher: (\w) Remplacer par: \L$1

Ou sélectionnez le texte, ctrl+K+L.

313
Alex K.

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
    MAIS
  • \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

95
dGo

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:

  1. Majuscule mots
    • Find: (\s)([a-z]) (\s correspond également aux nouvelles lignes, c.-à-d. "VenuS" => "VenuS")
    • Remplacer: $1\u$2
  2. Décapitalise les mots
    • Trouver: (\s)([A-Z])
    • Remplacer: $1\l$2
  3. Supprimer étui chamea (par exemple, cAmelCAse => camelcAse => camelcase)
    • Trouver: ([a-z])([A-Z])
    • Remplacer: $1\l$2
  4. Lettres minuscules dans les mots (par exemple, Majuscule => Minuscule)
    • Trouver: (\w)([A-Z]+)
    • Remplacer: $1\L$2
    • Remplacement alternatif: \L$0
  5. Majuscules dans les mots (par exemple upperCASe => uPPERCASE)
    • Trouver: (\w)([A-Z]+)
    • Remplacer: $1\U$2
  6. Majuscule précédent (par exemple upperCase => UPPERCase)
    • Trouver: (\w+)([A-Z])
    • Remplacer: \U$1$2
  7. Minuscule précédent (par exemple, LOWERCase => lowerCase)
    • Trouver: (\w+)([A-Z])
    • Remplacer: \L$1$2
  8. Majuscule le reste (par exemple upperCase => upperCASE)
    • Trouver: ([A-Z])(\w+)
    • Remplacer: $1\U$2
  9. Minuscules le reste (par exemple, MAJUSCULE => lOwercase)
    • Trouver: ([A-Z])(\w+)
    • Remplacer: $1\L$2
  10. Maj-droite-majuscule (par exemple, Cas => cAse => CAUSE => casE)
    • Trouver: ([a-z\s])([A-Z])(\w)
    • Remplacer: $1\l$2\u$3
  11. Maj-gauche-majuscule (par exemple, CasE => CaSe => CAse => Cas)
    • Trouver: (\w)([A-Z])([a-z\s])
    • Remplacer: \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:

  • Trouver: ((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z])) OR ([a-z][A-Z]+|[A-Z]+[a-z])
  • Remplacer: \L$1

2016-06-23 Modifier

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 ).

73
Armfoot

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

2
BadTudou

Essaye ça

  • Trouver: ([A-Z])([A-Z]+)\b
  • Remplacer: $1\L$2

Assurez-vous que la sensibilité à la casse est activée (Alt + C)

0
Vignesh Kumar A

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>

0
Paul Bondarovski