web-dev-qa-db-ja.com

Eclipseで正規表現を使用して大文字を小文字に置き換える方法は?

すべてのソースコードファイルを調べ、_k_Xyyy_をすべて_k_xyyy_で置き換えます(_k__の後の最初の文字を大文字から小文字に切り替えます)。

Eclipseダイアログを使用して、複数のファイルを検索および置換しています。現在、私は正規表現\bk_([A-Z])を持っています。

正規表現の置換文字列を指定するにはどうすればよいですか?

31
user196692

それは不可能です。 Eclipseのリファクタリング機能を使用するか、一度に1つずつ置き換えます。

regex       : \bk_A
replacement : k_a 

regex       : \bk_B
replacement : k_b 

...

regex       : \bk_Z
replacement : k_z 
11
Bart Kiers

私はちょうど同じタスクを解決しました(.netインターフェースをJavaインターフェースに変換する必要がありました)VIM :)の能力を利用しています)

void DoMethod1 -> void doMethod1
Foo PerformMethod2 -> Foo performMethod2
:%s/\(^\s*\w\+\s\+\)\([A-Z]\)/\1\L\2/g

ここでは、(オプションのインデント、戻り値のタイプ、その後に続く空白)、(大文字)の順に検索しています。ブレースはグループをキャプチャしています。次に、最初のキャプチャグループ\ 1を小文字の\ L 2番目のキャプチャグループ\ 2に置き換えます。

もちろんこれにはVimでファイルを開く必要がありますが、いずれにしても、Eclipseで手動で同じことを行うよりもはるかに高速です。

16
edio

文字列リテラルを小文字に変換する必要があるソースコードの巨大なチャンクに対して、これを行う必要がありました。 Notepad ++とPython Script plugin、as used as here )を使用する方法を見つけました。

1
Nick

(私にとって、プログラミングを始めたばかりなので、これは考えるのがもっと面白かったです)_$pattern_to_change_を取り、ord()を使用してASCIIから10進数に変換します。結果の10進数を取得して32を追加します。次に、 _$desired_pattern_をchr()を使用してASCIIに戻す。

または、単にSublimeTextをダウンロードし、その検索と置換機能を使用してすべての出現箇所を検索し、それらを差分テキストで置き換えます(Sublimeには正規表現もあります)。

この投稿は5年前なので、10億を手動で変換できたと思いますが、Sublimeを使用すると、5分で完了することができます。

本当に便利なテキストエディタ。

0
les