2017-07-26 106 views
0

我在匹配某個字符串「if」後的平衡括號時遇到問題。我知道我可以匹配使用平衡括號匹配某個字符串後的平衡括號

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

而且工作得很好。但是,當我在此正則表達式之前添加字符串「if」時,它將只在「if」之後匹配單個平衡括號。

在線演示:https://regex101.com/r/6lg0qi/3

+0

我想你需要['如果[\ t] *(\((?:?[^()] ++ |(1))* \))'](https://regex101.com/r/R1w0ei/1) –

回答

3

(?R)意味着遞歸整個圖案而你需要再次出現的這大塊:

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

Live demo