Regex remplacer les lettres majuscules par des lettres minuscules

j'essaie de remplacer les lettres majuscules par des lettres minuscules correspondantes en utilisant regex. Ainsi,

EarTH:   1,
MerCury: 0.2408467,
venuS:   0.61519726,

devient

earth:   1,
mercury: 0.2408467,
venus:   0.61519726,

en texte Sublime. Comment puis-je utiliser des lettres majuscules et des lettres minuscules uniquement dans des mots qui contiennent à la fois des lettres minuscules et des lettres majuscules? De sorte qu'il affecte venUs et non VENUS .

142
demandé sur leemour 2013-12-23 14:56:40

6 réponses

vous pouvez:

Rechercher: (\w) Remplacer Par: \L

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

250
répondu Alex K. 2018-06-12 15:10:42

j'ai pensé que cela pourrait être utile pour d'autres personnes :

rechercher:

  • ([A-Z])(.*)

remplacer:

  • \L --> convertira et en minuscules
    1519220920 mais" 1519240920
  • \l -- > convertira seulement en minuscules et laissera comme il est

il en va de même pour la majuscule avec \U et \u

89
répondu dGo 2014-11-04 18:32:04

avant de rechercher avec regex comme [A-Z] , vous devez appuyez sur le bouton sensible à la casse (ou Alt + C ) (comme leemour gentiment suggéré à éditer dans la réponse acceptée). Juste pour être clair, je laisse quelques autres exemples:

  1. majuscule mots
    • Find: (\s)([a-z]) ( \s correspond aussi à de nouvelles lignes, i.e." venuS "= > "VenuS")
    • remplacer: \u
  2. Uncapitalize mots
    • Rechercher: (\s)([A-Z])
    • remplacer: \l
  3. Supprimer camel case (p.ex. cAmelCAse => camelcAse = > camelcase)
    • Rechercher: ([a-z])([A-Z])
    • remplacer: \l
  4. lettres minuscules comprises dans les mots (p.ex. minuscules = > minuscules)
    • Rechercher: (\w)([A-Z]+)
    • remplacer: \L
    • Variante Remplacer: \L"1519100920"
  5. Lettres majuscules comprises dans les mots (p.ex. majuscules = > majuscules))
    • Rechercher: (\w)([A-Z]+)
    • remplacer: \U
  6. majuscule antérieur (p.ex. majuscule = > majuscule)
    • Rechercher: (\w+)([A-Z])
    • remplacer: \U
  7. minuscule précédente (par exemple, minuscule = > minuscule)
    • Rechercher: (\w+)([A-Z])
    • remplacer: \L
  8. Uppercase le reste (p.ex. upperCase => upperCASE)
    • Rechercher: ([A-Z])(\w+)
    • remplacer: \U
  9. plus bas le reste (par exemple en minuscules = > en minuscules)
    • Rechercher: ([A-Z])(\w+)
    • remplacer: \L
  10. Shift-droit-majuscules (par exemple, Cas = > = > = > cas)
    • Rechercher: ([a-z\s])([A-Z])(\w)
    • remplacer: \l\u
  11. Shift-gauche-majuscules (par exemple, Cas => Cas = > = > Cas)
    • Rechercher: (\w)([A-Z])([a-z\s])
    • remplacer: \u\l

concernant la question (faire correspondre mots avec au moins une majuscule et une minuscule lettre et les rendre minuscules), commentaire de leemour-réponse 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 (i.e. Non capture groups ) ou éviter de les créer du tout:

  • Rechercher: ((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z])) OU ([a-z][A-Z]+|[A-Z]+[a-z])
  • remplacer: \L

2016-06-23 Modifier

Tyler suggéré en éditant cette réponse une autre expression de recherche pour #4:

  • (\B)([A-Z]+)

selon la documentation , \B cherche un caractère qui n'est pas à la limite du mot (i.e. pas au début et pas à la fin). Vous pouvez utiliser le bouton pour remplacer tous les et il fait 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 autoriser les remplacements simples, peut-être en raison de la trouver 's "pas de limite" restriction (s'il vous plaît modifier cette si vous connaissez la raison exacte).

58
répondu Armfoot 2017-05-23 12:10:31

expression Régulière

Trouver : \w+

remplacer : \L"151910920 "

texte Sublime utilise les Expressions régulières Perl compatibles (PCRE) moteur de la bibliothèque Boost pour alimenter les expressions régulières dans la recherche panneau.

\L Convertit tout en minuscules

"151930920" groupes de Capture

1
répondu BadTudou 2018-04-26 05:04:25

Essayez cette

  • Rechercher: ([A-Z])([A-Z]+)\b
  • remplacer: \L

assurez-vous que la sensibilité du cas est activée (Alt + C)

0
répondu Vignesh Kumar A 2013-12-23 11:28:11

Dans BBEdit fonctionne de cette (ex.: changer les valeurs D'ID en minuscules):

chercher n'importe quelle valeur: <a id="(?P<x>.*?)"></a> Remplacer par le même en minuscules: <a id="\L\P<x>\E"></a>

Était: <a id="VALUE"></a> Devenu: <a id="value"></a>

0
répondu Paul Bondarovski 2018-07-05 15:17:02