Regex 在特定字符串后匹配平衡括号
我在匹配某个字符串“if”后的平衡括号时遇到问题。我知道我可以用Regex 在特定字符串后匹配平衡括号,regex,perl,Regex,Perl,我在匹配某个字符串“if”后的平衡括号时遇到问题。我知道我可以用 ((?>[^()]|(?R))?\) 这很好用。但是,当我在正则表达式之前添加字符串“if”时 if[ \t]*((?>[^()]|(?R))?\) 它只匹配“if”后面的单个平衡括号 在线演示:(?R)意味着在需要递归整个模式时,递归整个模式: if[ \t]*(\((?>[^()]+|(?1))*\)) (?R)意味着在需要递归整个模式时,递归整个模式: if[ \t]*(\((?>[^()]+|
((?>[^()]|(?R))?\)
这很好用。但是,当我在正则表达式之前添加字符串“if”时
if[ \t]*((?>[^()]|(?R))?\)
它只匹配“if”后面的单个平衡括号
在线演示:(?R)
意味着在需要递归整个模式时,递归整个模式:
if[ \t]*(\((?>[^()]+|(?1))*\))
(?R)
意味着在需要递归整个模式时,递归整个模式:
if[ \t]*(\((?>[^()]+|(?1))*\))
我想你需要我想你需要