0

Eclipseで正規表現を使用して、ソフトウェアの更新にコードを適合させたかったのです。

それ以外の

{$CFG->prefix}example1.xy

コードは次のようにする必要があります。

{example1}.xy

働くために。

別の例は次のとおりです。

{$CFG->prefix}example2.foo

>>

{example2}.foo

定数部分は:{$CFG->prefix};.

私は次のことを試しました(読みやすくするために空白を使用しました):

探す:\{\$CFG-\>prefix\} ([a-z]|[0-9])* \. ([a-z]|[0-9])*

要求された文字列を検索します。交換に苦労します。

正規表現の結果を保存して置換に使用することはできます,/1が(右?)、この結果を変更/操作する方法がわかりません。

助けてくれてありがとう。

4

2 に答える 2

2

あなたが試すことができます

\{\$CFG-\>prefix\}([a-z0-9]*)\.

と置き換えます

{\1}.
  1. 正規表現に空白がある理由がわかりません。削除しました。

  2. 数量詞*はグループ内にある必要があります。そうでない場合、最後に一致した文字のみが含まれ\1、完全な単語は含まれません。

  3. 最後のパーツを交換したくないので、一致させて交換する必要はありません。

于 2012-08-15T09:15:32.740 に答える
1

次の検索を試して、置き換えてください。

検索\{\$CFG->prefix\}([a-z0-9]*)\.([a-z0-9]*)

に置き換えます{\1}.\2

上記を使用して、次のようになります。

前     なる     後

これは、これが実際に動作していることを示す簡単なスクリーンキャストです。

OPのFindreg-exに加えられた変更

上記のfind-replaceを機能させるには、OPのfind式に次の変更を加える必要がありました。

  1. 空白を削除しました。
  2. グループ内のGreedyMatch修飾子を移動しました:つまり ([...]*)([...])*
  3. 文字セットを修正しました:つまり[a-z0-9]、代わりに[a-z]|[0-9]
  4. 期間終了後にパーツをキャプチャする別のグループを導入しました。ただし、これは厳密には必要ありませんが、一部のシナリオでは役立つ場合があります。
于 2012-08-15T09:13:48.843 に答える