我想查找函数中的所有参数,但是当我使用"("或")"时,我会收到错误。我的函数参数中的char。
我的RegEx:/@GetText(\(\s*([^)]+?)\s*\))/
我使用http://www.phpliveregex.com进行调试(funktion:preg_match_all)。
我的搜索字符串:
@GetText("Hello World", "Example")
< = Works @GetText("Hello World!", 1234)
< = Works @GetText("This makes errors--> Hello(World)")
< =它不起作用
作品答案 0 :(得分:1)
如果要匹配递归子字符串,则需要在前瞻中使用recursive正则表达式来检索所有重叠匹配,这样的事情应该有效:
$re = '~@GetText(?=(\((?:[^()]+|(?1))*+\)))~';
preg_match_all($re, $str, $matches);
print_r($matches[1]);
答案 1 :(得分:0)