web-dev-qa-db-ja.com

日食で改行を検索する方法

Eclipseエディターに次のテキストがある場合:

Text Line 1
Text Line 2

テキストを次のように連結したいと思います。

Text Line 1Text Line 2

私の最初のアイデアは、キャリッジリターン文字 '\ n'を検索し、それを ''に置き換えて連結することでした。

Eclipseの検索機能を使ってみましたが、改行文字が認識されません。

これを行うことができる他のエディターはありますか?

42
zfranciscus

Eclipseは次の場合にこれを行います。

  • 検索/置換で正規表現モードをオンにする
  • 改行に\ Rを入力します
64
soru

Edit -> Find/Replaceを使用し、Regular Expressionsチェックボックスをオンにして、\nを検索し、スペースで置き換えます。

私はEclipse 3.4で試してみましたが、うまくいきました。

8
Johannes Weiss

エディター(少なくとも、TextPad)でのほとんどの検索および置換タスクには、正規表現を使用して置換する機能があります。 Eclipseでこのオプションを見つけることができる場合は、それを使用してください。

2
Noon Silk

短い答え

(正規表現を有効にして)複数行の検索式の区切り文字として\s++を使用し、必要に応じて\Qfoo\Eを使用して特殊文字をエスケープすることにしました。

長い答え

soruは既に回答済みなので、「Unicode改行シーケンス」の場合、\Rを使用した正規表現検索を使用できます。

純粋な改行は\rで表されます。大文字と小文字が区別されます。\Rは任意のUnicode改行シーケンスを表します(たとえば、\ r\n)。

改行とタブを含むEclipseで複数行の式を検索したかったので、SO質問を見つけました

    @Override
    @Transient

私が使用した正規の検索式に空白を含めるには(Windowsプラットフォーム)

@Override\r\n\t*@Transient

次の式も機能します。

  • @Override\R\t*@Transient
  • @Override\s++@Transient

注意してください 2番目の式も@Override @Transientに一致することに注意してください改行なし、これは私にとっては問題ありません。

次の表現はしませんでした!私のために働く:

  • @Override\r\t*@Transient
  • @Override\n\t*@Transient

いくつかの正規表現の説明:

  • \Rは、Unicodeの改行シーケンスを表します(例:\r\n
  • \sは空白を表します
  • \tはタブを表します
  • *は、0回以上の繰り返しに一致します
  • ++は、1回以上の繰り返しに一致します
  • \Qおよび\Eはラップされたコンテンツをエスケープします。たとえば、元の複数行式に特殊な正規表現文字が含まれている場合は、これらを使用します。

\Q/**\E\s++\Q*\E

マッチ

    /**
     *

こちらもご覧ください:

\ nと\ rの違い

https://docs.Oracle.com/javase/7/docs/api/Java/util/regex/Pattern.html

2
Stefan

\ rは復帰の正しい正規表現です。しかし、Eclipse標準エディターはそれを見つけません。したがって、外部エディタ(たとえば、notepad ++)を使用します

1
RoutesMaps.com