2017-04-22 7 views
1

事前に謝罪してください。私の質問は以前に尋ねられており、答えもありました(Regex how to match all end of line except blank line?)。私は答えが完全ではないと確信していますが、残念ながらそれはあまりにも明白ではありません。 OPとまったく同様に、すべての連続した非空白行をタブ文字と結合したいと思います。Notgeadのタブ文字と非空白行を結合する正規表現++

入力:

AAAAAA 
BBBBBB 
CCCCCC 

DDDDDD 
EEEEEE 

FFFFFF 
GGGGGG 
HHHHHH 

予想される出力:

AAAAAA BBBBBB CCCCCC 

DDDDDD EEEEEE 

FFFFFF GGGGGG HHHHHH 

/(?<!\s)$/mg(?<=[^\s])$は、使用する正規表現として提案されているが、置換文字列には何をすべきですか?

+2

質問本文にテキストと期待される結果を追加してください。 –

+0

具体的な問題を明確にしたり、詳細を追加して必要なものを正確に強調してください**。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にするための[How to Ask](http://stackoverflow.com/help/how-to-ask)ページを参照してください –

+0

申し訳ありません。私はサンプルの入力と予想される出力でいくつかの書式設定の問題に遭遇しました。私は、質問を適切に提起するためにもっと努力する必要があることに同意します。 – Sandeep

答えて

1

あなたは何検索

を使用する必要があります。ものと置き換え\S\h*\K\R(?!\R)
\t
正規表現を詳細

ON:

  • \S - 非空白文字が
  • \h*(非空行検出) - 0+水平空白を(多分線はいくつかの非垂直空白文字で終わる)
  • \K - ので、マッチしたテキストを廃棄operartorリセット一致遠く
  • \R
  • - 別の改行と続かない(空行を結ぶ避ける!) -
  • (?!\R)は、改行(CR、LFまたはCRLF)。

は、結果とスクリーンショットを参照してください:

enter image description here

+0

チップをありがとう。 – Sandeep

0

あなたはとして何一部と

  • \1\tを探すとして

    • (\S)\Rを使用することができます交換用のダイアログの

    と交換してください。

    説明:

    • \SがNotWhitespaceとある\R
    • 括弧の交換はこれを使用\1
    • にlinenend前に、最後の非空白文字を格納lineending手段と\tを意味し、タブ文字を使用して、望ましくない改行を取り除きます。
  • +0

    あなたのアプローチでは、空白行が最後に一致する空でないものと結合され、空白行で終わる空でない行には参加できなくなります。 –

    +0

    チップをありがとう。 – Sandeep

    関連する問題