web-dev-qa-db-ja.com

Intellij IDEAで大文字を小文字に置き換えるために正規表現を使用するにはどうすればよいですか?

私はこれをグーグルで調べて、他の正規表現パーサーを使用する方法を見つけました:

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

私はこれらを試してみましたが、どちらも動作しません。例として、これを変更するために正規表現を使用したい:

private String Name;
private Integer Bar = 2;

これに:

private String name;
private Integer bar = 2;

私はこのようなものを試しました:

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

それらのどれも動作しません。 intellijでこれを行うことは可能ですか、これは欠落している機能ですか?これは単なる教育目的であり、例は不自然です。これがintellijで可能かどうかを知りたいだけです。

77
Daniel Kaplan

IDEA 15では、以下のスイッチを使用して、キャプチャされた式の大文字と小文字を切り替えることができます。 公式に文書化 このバージョンがリリースされてから。

  • \l:次の1文字の大文字小文字を区別します
  • \u:次の1文字の大文字
  • \L\Eまたは置換文字列の終わりまで、次の文字の大文字小文字を区別します
  • \U\Eまたは置換文字列の終わりまで、次の文字の大文字と小文字を区別します
  • \E\Uまたは\Lによって開始されたケース変更の終了をマークします

使用例は次のとおりです(ドキュメントは明確ではないため)。

検索:(\ w + _)+(\ w +)置換:\ L $ 1 $ 2\E

上記はFOO_BAR_BAZfoo_bar_bazなどに変換します。$ 1は最初に見つかったキャプチャグループ(かっこ内)を指し、$ 2は2番目のセットを指します。

後世のために:これは最初は reported @gaoagongによって文書化されていました there

142
desseim

答えを探して、@ ajp15243がすでにこれに答えていることに気付きました。現在、Intellijでは正規表現の置換機能を使用してレターの大文字と小文字を変更する方法はありません。この機能については、次のURLで簡単な説明があります。

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

こちらでYoutrackの問題の機能に投票することもできます。

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

正規表現のIntellijプラグインがありますが、残念ながら下位および上位のケーシングもサポートしていません。

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

正しく置き換えるには、Perlプログラムを介してファイルを実行する必要がある場合があります。

13
gaoagong

Idea Vim プラグインを使い始め、Vimでこのようなことをすることを学びました。このようにして、Idea以外でこれらのスキルを再利用できました。

以下は、あなたが要求したことを行うためのvimコマンドです。

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

IDE内で正規表現が入力されています。正規表現パターンをVimにエスケープするには、余分なスラッシュが必要です。

Within The IDE

IDE内からプラグインを見つけます。 enter image description here

5
chinto