web-dev-qa-db-ja.com

Eclipseで2行を(一緒に)検索して置き換える方法は?

Eclipseを介して次の2行で複数のファイルを検索したいと思います。

@Length(max = L_255)
private String description;

これらを次の2つに置き換えます。

@Length(max = L_255, message="{validator.description.len}")
private String description;
51
Sam

正規表現を使用している場合、Eclipseではデフォルトで検索は複数行になります。

(\@Length\(max = L_255)\)([\r\n\s]+private)

「プライベート文字列の説明」を追加したいと思います。

(\@Length\(max = L_255)\)([\r\n\s]+private\s+?String\s+description\s*?;)

と取り換える:

\1, message="{validator.description.len}")\2

それはによって引き起こされるファイル検索で完全に働きます CTRL-H

Eclipse multi-line search

Tikaanswer で述べたように、「= Conting Text」フィールドで選択した2行を直接コピーできます:それらの行はEclipseによってregexpとして変換されます。

40
VonC

選択したブロックの正規表現を取得する方法に関する別のヒント。検索または置換する複数の行(複数行)を含むファイルの1つを開きます。クリック Ctrl+F 「正規表現」を選択します。 [検索/置換]ウィンドウを閉じます。必要なブロックを選択して、もう一度クリックしてください Ctrl+F [検索/置換]ウィンドウを開きます。 [検索]テキストボックスに、選択ブロックと完全に一致する正規表現が表示されます。

(私はこれを発見しました、非常に長いブロックの正規表現を手動で作成した後にのみ:)

56
Mario Balaban

正規表現を使用する場合、CTRL + Hは2行かかります(自分で正規表現を記述する必要はなく、Eclipseが自動的に作成します)。

  1. 行を選択します。
  2. CTRL + Hをクリックします。検索ダイアログが開きます。 「正規表現」がすでにチェックされている場合、Eclipseは検索した2行を正規表現に変換します。[検索]をクリックします。 「正規表現」がまだチェックされていない場合は、チェックして「キャンセル」をクリックします(Eclipseは選択内容を記憶しています)。
  3. もう一度ラインを選択します。
  4. CTRL + Hをクリックします。検索ダイアログが開きます。今回は「正規表現」がすでに選択されています。 Eclipseは、検索した2行を正規表現に変換します。[検索]をクリックします。
15
Tika

手動で作成した正規表現の一部として複数の行を含めるための簡単なヒント:

通常.*を使用して、任意の文字を0回以上照合する場合は、代わりに(?:.|\r?\n)*のようなものを使用することを検討してください。または、最後に?を追加して、貪欲でないようにします。

説明.は新しい行と一致しないため、 「どちらか一方」を実行します。括弧は、パイプの前の.またはパイプの後の改行のいずれかに一致します。 ?の後の\rは、WindowsまたはUnixの新しい行を許可するために、改行前の改行をオプションにします。 ?:は、全体をキャプチャグループとして除外します(スタックオーバーフローを回避するのに役立ちます)。

3
Steve Chambers