Eclipseエディターに次のテキストがある場合:
Text Line 1
Text Line 2
テキストを次のように連結したいと思います。
Text Line 1Text Line 2
私の最初のアイデアは、キャリッジリターン文字 '\ n'を検索し、それを ''に置き換えて連結することでした。
Eclipseの検索機能を使ってみましたが、改行文字が認識されません。
これを行うことができる他のエディターはありますか?
Eclipseは次の場合にこれを行います。
Edit -> Find/Replace
を使用し、Regular Expressions
チェックボックスをオンにして、\n
を検索し、スペースで置き換えます。
私はEclipse 3.4で試してみましたが、うまくいきました。
エディター(少なくとも、TextPad)でのほとんどの検索および置換タスクには、正規表現を使用して置換する機能があります。 Eclipseでこのオプションを見つけることができる場合は、それを使用してください。
短い答え:
(正規表現を有効にして)複数行の検索式の区切り文字として\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
マッチ
/**
*
こちらもご覧ください:
https://docs.Oracle.com/javase/7/docs/api/Java/util/regex/Pattern.html
\ rは復帰の正しい正規表現です。しかし、Eclipse標準エディターはそれを見つけません。したがって、外部エディタ(たとえば、notepad ++)を使用します