web-dev-qa-db-fra.com

Comment puis-je utiliser une expression régulière pour remplacer les majuscules par des minuscules dans Intellij IDEA?

J'ai cherché sur Google et découvert comment faire avec les autres analyseurs d'expressions régulières:

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
http://www.regular-expressions.info/replacecase.html

J'ai essayé ces derniers et aucun travail. Par exemple, je veux utiliser une expression régulière pour changer cela:

private String Name;
private Integer Bar = 2;

Pour ça:

private String name;
private Integer bar = 2;

J'ai essayé quelque chose comme ça:

replace: private (\S+) (\S+)
with: private $1 $L$2
with: private $1 \L$2
with: <etc.>

Aucun ne fonctionne. Est-il possible de le faire dans intellij, ou est-ce une fonctionnalité manquante? C'est juste à des fins éducatives et l'exemple est artificiel. Je veux juste savoir si c'est possible de faire dans l'intellij.

77
Daniel Kaplan

Dans IDEA 15 , vous pouvez utiliser les commutateurs ci-dessous pour basculer la casse des expressions capturées. C'est maintenant officiellement documenté depuis la sortie de cette version.

  • \l: réduit la casse du caractère suivant
  • \u: la casse du caractère suivant
  • \L: abaisser la casse des caractères suivants jusqu'à ce que \E ou la fin de la chaîne de remplacement
  • \U: remonter la casse des caractères suivants jusqu'à ce que \E ou la fin de la chaîne de remplacement
  • \E: marque la fin d'un changement de cas initié par \U ou \L

Voici un exemple d'utilisation (car la documentation n'est pas claire):

trouver: (\ w + _) + (\ w +) remplacer:\L $ 1 $ 2\E

Ce qui précède convertira FOO_BAR_BAZ à foo_bar_baz etc Le $ 1 fait référence au premier groupe de capture trouvé (entre parenthèses), $ 2 au deuxième ensemble, etc.

Pour la postérité: c'était initialement rapporté par @gaoagong et documenté .

142
desseim

J'ai recherché la réponse, puis réalisé que @ ajp15243 a déjà répondu à cette question ci-dessus. Il n'y a actuellement aucun moyen dans Intellij d'utiliser leur fonction de remplacement d'expression régulière pour changer la casse d'une lettre. Il y a une brève discussion à l'URL suivante sur la fonctionnalité.

http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html

Vous pouvez également voter pour la fonctionnalité du numéro Youtrack ici:

http://youtrack.jetbrains.com/issue/IDEA-70451

Il existe un plugin regex Intellij, mais malheureusement, il ne prend pas en charge les boîtiers inférieur et supérieur.

http://plugins.jetbrains.com/plugin/19?pr=idea

Vous devrez peut-être simplement exécuter les fichiers via un programme Perl pour les remplacer correctement.

13
gaoagong

J'ai commencé à utiliser le plugin Idea Vim et j'ai appris à faire des choses comme ça dans Vim. De cette façon, je pourrais réutiliser ces compétences en dehors d'Idea.

Voici la commande vim pour faire ce que vous avez demandé.

:%s/private\s\(\w*\)\s\(w*\)/private \1 \L\2/g

Regex étant entré dans l'IDE. Les barres obliques supplémentaires sont nécessaires pour échapper au motif d'expression régulière dans le Vim.

Within The IDE

Trouvez le plugin depuis l'IDE. enter image description here

5
chinto