2017-07-26 12 views
0

特定の文字列 "if"の後ろに平衡括弧を一致させることができません。特定の文字列の後に平衡括弧を一致させよう

((?>[^()]|(?R))?\) 

を使用してバランスのとれた括弧を一致させることができます。しかし、「あれば」私は私の文字列を追加するときに、この正規表現の前に

if[ \t]*((?>[^()]|(?R))?\) 

それが唯一の「if」の後にシングルバランスブラケットに一致することができます。

オンラインデモ:あなたはそれのチャンク再発する必要がありながらhttps://regex101.com/r/6lg0qi/3

+0

を[ '場合は[\ t]は*(\((?:[^()] ++ |(?1))* \))]](https://regex101.com/r/R1w0ei/1) –

答えて

3

(?R)はパターン全体を再帰を意味:私はあなたが必要だと思う

if[ \t]*(\((?>[^()]+|(?1))*\)) 

Live demo