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


92

私はこれをググって、他の正規表現パーサーをどのように扱うかを見つけました:

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でこれが可能かどうかを知りたいだけです。


3
正規表現を使用する理由はありますか?IntelliJにはそのためのホットキーショートカットがあります。
ajp15243 2014年

@ ajp15243これは単なる教育目的であり、例は人為的なものです。これがintellijで可能かどうか、文字通り知りたいです。
Daniel Kaplan 2014年

3
けっこうだ!確認したかっただけです。IntelliJ Regex Syntaxリファレンスを見つけました。コメントで、誰かがあなたと同じ質問をしているようです。モデレーターは答えました(そして私は少し誤解していると思います)が、答えはこれがIntelliJの正規表現構文では不可能であることを示しています。
ajp15243 2014年

あなたはいつでもそのためのプラグインを書くことができます。
Meo

1
@tieTYT gaoagongはかなり良いです、私は彼にそれをさせましょう:)。
ajp15243

回答:


174

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

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

以下に使用例を示します(ドキュメントが明確でないため)。

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

上記はetcに変換さFOO_BAR_BAZれますfoo_bar_baz。$ 1は最初に見つかったキャプチャグループ(括弧内)を示し、$ 2は2番目のセットを示します。

後世のために:これは、最初にされた報告 @gaoagongにより、文書化


13

答えを検索したところ、@ 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プログラムでファイルを実行する必要がある場合があります。


1
Youtrackによると、これはIntelliJのバージョン15に追加されています
Kevin Sheehan

6

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

ここにあなたが要求したことをするvimコマンドがあります。

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

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

IDE内

IDE内からプラグインを検索します。 ここに画像の説明を入力してください


2
VIMエミュレーションを使用したくないので、おそらくここの人々の99%を助けない巨大な回避策。しかし、私はたまたまこのプラグインをインストールしているので、それは私のために動作します:)
ダニエル・カプラン

1
私は知っています。IDEを使用している誰にとっても、ViとVimは最初は役に立たないように見えます。サーバーでそれらすべてに遭遇した後、私は最終的にViを学び始めました。ツール間を移動するときに考え方を切り替える必要がないので、今はちょっと気に入っています。
chinto 2015

まだ流暢ではありません。Viを使用する以前よりも、IDEAVimを使用したIntellij-IDEAでの生産性が高いと思いますか?
Daniel Kaplan

1
だんだん..昔は日食が上手でした。その後、Intellijに移り、トリックのほとんどを学びました。次に、Vimを学ぶことで、サーバーとワークステーションをすぐに上手くできると気づきました。また、Vimはテキストの操作とナビゲーションにおいてはるかに強力であると私は見ています。私は、リファクタリングや参照の検索などのすべてのIDE専門分野でIDEショートカットを使用し、defに移動します。ただし、モードを切り替えることは非常に重要です。
chinto 2015

1
これは、viの使い方を知っている人にとって優れたソリューションです。複雑な置換を行う必要がある場合は、IdeaVimをオンに切り替えてから、再びオフにしてIdea独自のエディター機能を利用します。しかし、IdeaVimがアクティブなときにインジケーターが表示されるようにしたいと思います。
LS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.