2016-07-28 12 views
-1

私はテキストの最後に一致させたいので、すべての文字と改行を一致させる必要があります。Regex:パターン繰り返しキャプチャ - パターンの終わりのマッチングを区切り - 非キャプチャグループと先読みネガティブな例

しかし、次のキャプチャの開始を除外する必要があります。

私が望むのは、次のパターンが始まるパターンの終わりを区切ることです。

私はそれが動作しない

(?!-{2}\\*{3}) 

のようなもので

[^-] 

を交換してみました!

だから私は数をキャプチャしたいと私は段落全体(テキスト)を取得したいとの間に -

Regex capture

+1

あなたは、変更後の希望が一致何の例を示していることはできますか? –

+1

あなたが求めていることは非常に不明です。予想されるインプットと期待されるアウトプットが何かを明確にすることはできますか? – Jokab

+0

私は '全体の段落'全体の一部のテキストをキャプチャしたいです。タンク – amorel

答えて

-1

(*** X ***)私は私が欲しかった、まさに発見! :)

私は、私が欲しいものと望ましくないものをグループ化する必要があります。そのために 私は「非キャプチャグループ」と「否定先読み」を使用する必要があります。

(?!nowant)(?:want) 

その後、私はマッチングをagregateする「非キャプチャグループ」を使用する必要があります。

(?:(?!nowant)(?:want)) 

後、私は '*'

(?:(?!nowant)(?:want))* 

を数量詞を追加し、最後に、私は 'キャプチャグループ' を追加:

をそこでここでは3210

は正規表現です:

--\*{3}([\d]*)\*{3}(((?!-).*\n)*) 

第一のキャプチャグループ::内部桁

((?:(?!-{2}\*{3})(?:\n|.))*) 

あなたは、この正規表現を使用して、正規表現 here :
https://regex101.com/r/xJ0gC6/2

+0

実際、私のケースではregex101は168ステップしかカウントされず、このソリューションカウントは2317(編集前の2334)です。だから、それはほぼ14倍の "高速"です。 –

+1

@DidierAupest:ステップ数はパターンが速いか遅いかを直接意味するものではありませんが、ここでは矛盾が大きいことは間違いありません。 –

+0

私はテストしましたが、私はディディエの答えが最高だとは思わない、申し訳ありません。 – amorel

2

完全に動作するようです見ることができます星。

第二のキャプチャグループ:「ヘッダ」

第三のキャプチャグループ間のテキスト:段落の最後の行。

正規表現とのリンクが試験: https://regex101.com/r/xJ0gC6/1

関連する問題