1

Javaソースファイルで検索と置換を行おうとしています。

現在、私のクラスには、次の形式の無効な名前(自動命名が不十分なツールからインポートされたもの)があります。

public class [0-9]{2}[A-Za-z]+

数字の周りにアンダースコアを挿入して、フォームの有効なクラス名を作成したい

public class [_][0-9]{2}[_][A-Za-z]+

ただし、Eclipseの検索と置換ツールを使用して、検索文字列と置換文字列の両方で正規表現ボックスをオンにすると、出力が希望どおりにフォーマットされません。

それはとります

02ListOfValidAppIDs

そしてそれを作ります

[-][0-9]{2}[_][A-Za-z]+

それ以外の

_02_ListOfValidAppIDs

正規表現に任意の数とテキストを保持させ、それらを置換文字列に接続するにはどうすればよいですか?

(編集:メモとして、プレビュー機能を使用すると、Eclipseが置き換えたい名前をすべて正しく検出していることがわかりますが、それ以外は何も検出されていません)

4

2 に答える 2

3

必要な正規表現の正確なフレーバーはわかりませんが、このようなものを使用すると、正しい方向に進むことができます。

キャプチャグループを使用するように「検索」パターンを更新します。

(public class )([0-9]{2})([A-Za-z]+)

そして、置換でそれらのキャプチャを参照します。

\1_\2_\3

注:正規表現の一部のフレーバーは、キャプチャされたグループを表す{}代わりにを使用し、一部のフレーバーは、を使用する代わりに、、、などを参照として使用します。()$1$2$3\#

于 2012-06-01T18:20:20.637 に答える
2

Eclipseの[検索/置換]ダイアログでは、これを使用すると正常に機能します

([0-9]+)([A-Za-z]+)

Findボックス内と

_$1_$2

Replace withボックスに。

もちろん、Regular expressionsチェックボックスもオンにする必要があります。

于 2012-06-01T18:31:52.360 に答える