33

k_Xyyyすべてのソース コード ファイルを調べて、出現するすべての文字列をwithに置き換えたいと思いますk_xyyy(後の最初の文字k_を大文字から小文字に切り替えます)。

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

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

4

4 に答える 4

16

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

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

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

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

于 2012-07-24T16:31:56.383 に答える
12

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

regex       : \bk_A
replacement : k_a 

regex       : \bk_B
replacement : k_b 

...

regex       : \bk_Z
replacement : k_z 
于 2010-02-12T13:28:04.827 に答える
1

文字列リテラルを小文字に変換する必要がある大量のソース コードに対して、これを行う必要がありました。here で使用されているように、Notepad++ と Python Script プラグインを使用する方法を見つけました。

于 2014-03-25T20:57:11.700 に答える
0

(私にとっては、プログラミングを始めたばかりなので、考えるのがもっと楽しかったです)$pattern_to_changeを使用して、ASCII から 10 進ord()数に変換$desired_patternchr()ます。

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

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

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

于 2013-11-09T01:22:24.927 に答える