2009-09-03 26 views
101

eclipseでは、正規表現の検索と置換を行う際に、一致する検索文字列を置換文字列の一部として使用できますか?Eclipse、正規表現の検索と置き換え

基本的に、私は

variableName.someMethod() 

のすべての出現を置き換えたい:

variableNameにがすべてで任意の変数名にすることができ
((TypeName)variableName.someMethod()) 

。ある

s/[a-zA-Z]+\.someMethod\(\)/((TypeName)&)/g 

&がマッチした検索文字列を表します

は、私のようなものを使用することができをsedの。 Eclipseに類似したものはありますか?

ありがとうございます!

+0

Eclipse RegExに関する優れたドキュメント:http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jubula.client.ua.help%2Fhtml%2Freference%2Fnode4.html –

答えて

201

はい、「()」はグループを取得します。あなたはi番目のキャプチャグループであるところで$ iで再び使うことができます。

ので:

search: (\w+\.someMethod\(\)) 
replace: ((TypeName)$1) 

ヒント:テキストボックスでのCTRL +スペースを使用すると、正規表現の執筆のための提案のすべての種類を提供します。 (私は恐れがあります、提案のリストを下ろすために、テキストボックスのあなたの入力を削除します。小さなバグを冒す)

+1

いいえmoiのために働きます:( – kellogs

+12

偉大な答え、特にヒントは価値のある余分な点です:) –

+0

それはいい答えと役に立つヒントです。もう少し詳しく説明しておけばもっと助けになりました。 – iammilind

2

少なくともSTS(SpringSource Tool Suite)グループは、文字列を置換する

replace: ((TypeName)$0) 
+5

それはafaikではない。 $ 0は元の検索語全体を表します。この場合、私は偶然にもうまくいくと思います。 –

0

誰かの説明と、どのように日食でのregxを使用する方法の例が必要な場合は、これが役に立つことが期待される。ここに私の問題があります。

enter image description here

私は

/271.mp4 

/download.mp4^lecture_id=271 

の名前を変更し、これらの多くがあることができますしたいです。

どうすればよいですか?その後

enter image description here

...
検索=(^。*インポート)を使用して検索する/置き換えるボタン

6

を打つ(。*)(\(。* \):)
置き換える= $ 1 $ 2

...置き換える......正規表現で

from checks import checklist 



ブロックは^(( "\" が先行されていない)カッコ

によって描写されている。*と

from checks import checklist(_list): 

...インポート)は "チェックインから"を見つけて$ 1に読み込みます(eclipseは1でカウントを開始します)

(。*)次のencounが見つかるまで"("と$ 2に読み込みます。 $ 2は次の部分(次の行を参照)のために "("に止まります)

(\(。* \):)は "最初に遭遇しました" $ 3に$ 3が入ります:$ 3は "( '任意のテキスト'):"または "(_list):"でロードされます

次に、$ 1 $ 2を置き換えて、ただ最初の二つ。



Screenshot

2

NomeNは正しく答えたが、このANたと私のような初心者のためにswerはあまり役に立たないでしょう。私たちは解決すべきもう一つの問題があり、RegExの使い方はわからないからです。だから私はこれに少しの説明を加えています。答えは

検索です:(\ W + \のsomeMethod \(\)。)

置き換える:((型名)$ 1)

ここ

:検索で

  • 最初と最後の '(' ')は正規表現のグループを表します

  • 言葉(英数+アンダースコア)

  • は '+' 一つ以上の(英数字+アンダースコアのすなわち、1つまたは複数)

  • を描く描く '\ W' ''任意の文字を表す特殊文字です(つまり、+はいずれかの文字の1つまたは複数を意味します)。これは特殊文字 ' 'を表すため、 '。'私たちはそれにエスケープ文字を付けるべきです、すなわち '。'

  • 「someMethod」は検索対象として与えられます。

  • 彼らはグループ を描写するために使用される特殊文字(私たちは次の点でのグループについて説明します)

であるため、2つの括弧は「(」、「)」エスケープ文字 と一緒に与えられています

に置き換えるには:

  • $ 1が グループを示し、ここで、 '((型名)$ 1)' が指定されています。これは、検索フィールドも

  • あなたはボックス

    を置き換える見つける に「正規表現」オプションをチェックしていることを確認してくださいに「(」、「)」 最初と最後の括弧で囲まれているすべての文字です

RegExの詳細については、http://regexr.com/を参照してください。

関連する問題