2017-11-22 2 views
1

真ん中にシーケンスを含まない2つの文字列の間に一致する正規表現を作成したいとします。シーケンスを含まない2つの文字列の間に一致する正規表現

この正規表現を例として使用します。front.*(?!exclude)\.back$ 除外を含まない前後の文字列と一致したいと思います。

テストケース:

front_exclude.back - 一致なし

front.back - 試合

front.helloworld.back - 試合

答えて

0

これを試してみてください:

front(?:(?!exclude).)*\.back$ 
+0

はい、これは動作します! – RyanCW

+0

あなたのアプローチがなぜ機能するのかについての説明も提供できますか? – RyanCW

+0

あなたの元の質問に基づいて、私はあなたが負のルックアヘッドアサーションがどのように機能するかを理解していると仮定しています。 '(?:(?! exclude)。)*'は、負の先読みアサーション '(?!exclude)がシーケンス内の各文字の前に含まれるような文字シーケンスにマッチします。これにより、 "exclude"という文字列が一連の文字のどこにも現れないことが保証されます。 – Marathon55

関連する問題