2016-11-22 6 views
-1

式の最後にグループを見つける:正規表現 - それはラインの端部に配置されている場合は一致しない行

(\b%%\b([^%])*\b%%\b) 

テスト文字列:結果として

djwk%%text%%doqdojd%%text.text.text%%kjwldjdflkljwfe%%body.text.text%% 

djwk_doqdojd_kjwldjdflkljwfe%%body.text.text%% 

最後のものは見逃されています(テスト済みvia

私は行方不明ですか?

(\b%%\b([^%])*\b%%) 

説明:

最後の「\ bのちょうどフォロー正規表現を試してみてください、そして、

djwk_doqdojd_kjwldjdflkljwfe_ 

答えて

2

あなたのような結果を持っているしたいと仮定すると、 "あなたが提供している正規表現では、文字" %% "をターゲット文字列の最後の要素にすることはできません。

希望すると、これが役立ちます。

乾杯、Nikolas。

+0

奇妙な...それは動作します...しかし、なぜこれが起こりますか? \ bはeolを検出しませんか? – DreadAngel

+1

実際、そうではありません... "\ b"は[単語境界]に一致します(http://www.regular-expressions.info/wordboundaries.html)。だから、ダブル "%"の後に1つの成功マッチがなければならないと指定したとき、それは渡された文字列の最後に一致するものではありませんでした。私は[regex101](https://regex101.com)を見て、あなたの正規表現の各部分を理解することをお勧めします。乾杯 –

関連する問題