2017-05-04 14 views
0

私の目的のために正規表現を思いつくことはできません。私はこれに近いもの有効な終了の正規表現

(?!\{%)\s*endfor\s*%}

とハードしようとしていますが、私は希望として、それは働いていません。

それはのような不正な使用法を見つける必要があります。

- % endfor %} - % endfor %} - { % endfor %} - endfor %} - {% something valid %} % endfor %}

をしかしなどの有効な使い方を見つけるべきではない: あなたが検出するので、代わりにあなたの試合でマイナスを使用していないのはなぜ - {% endif %} - {% endif %} - {%endif%} // multiline - {% - endif - %}

+2

をEXAを指定してくださいこのパターンが何をしたいか、現在のパターンがどのように失敗するかをctlyします。あなたの例から、それに '' endfor "'をつけて何かをトラップしたいように見えます。 – khelwood

+0

'\ {%\ s * endif \ s *%}'を使って有効なケースを見つけられないのはなぜですか? – anubhava

答えて

1

をあなたの正規表現と間違った場合、あなたは、例えば代わり​​に!matchを使用することができます。

if(!str.matches("\\{\\%\\s*endfor\\s*\\%\\}")){ 
//-^------------------------------------------------- 
    //do this 
} 
関連する問題