ホーム>source

特定の行のコードを検索して削除したい。正規表現を使用して、探したい行を見つけます。 Eclipseで検索/置換機能を使用して、これらの行を完全に削除します(常に複数行です)。私の問題は、Eclipseが複数の行を完全に削除するのではなく、1つの空の行で置き換えることです。 他の多くのスレッドで提案されているように、検索フィールドで検索語を使用し、置換フィールドを空のままにします。しかし、これらの行を削除する代わりに、Eclipseはそれらを1つの空の行に置き換えます。 最初に行を空の行に置き換え、次に正規表現を使用してその空の行を削除しますが、構造化/読みやすさのために空の行を含む多くのファイルがあります。

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

例:

コード:

Information
rubbish
rubbish
rubbish
Information

私が欲しいもの:

Information
Information

私が得るもの:

Information
Information

あなたの答え
  • 解決した方法 # 1

    rubbish という行を削除するとします 、あなたはちょうど \n? を追加することができます  (またはOSの改行文字に加えて ? ) 最後に:

    rubbish\n?
    
    

    これは、 rubbish の後のすべての改行文字に一致します  新しい行が置き換えられます。 rubbish を置き換えることができます  好きなパターンで。

    デモ

    ただし、最後の行が rubbish の場合、最後に空行が残ります 、最後の rubbish  それに続く新しい行はありません。 } を含む行を削除しない限り、これは問題になりません。 多くの場合、Javaソースファイルの最後の行です。

    この問題を克服するには、次の正規表現を使用できます。

    rubbish\n|\nrubbish
    
    

    これはちょっと遅いですが、この正規表現を使って本番コードを書いているわけではないので問題にはなりません。ソースコードをリファクタリングしようとしているだけですよね?

    rubbish\n を使用する  その後、 \nrubbish を使用して  より速くすることができます。

  • 解決した方法 # 2

    秘Theは、私の式が改行文字を見つけられなかったため、それを置換しなかったことです。私はちょうど \R を追加しました  私の表現の後、私の問題はすべて解決しました。 ヒントについては遠lえ、改行文字を検索するアイデアについてはSweeperに感謝します。

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ java - 二重変数doubleValを宣言するプログラムを作成し、2 ^ 16の値で初期化します。ショートに変換