php正则递归匹配

匹配成对的括号并且嵌套层次未知时,就要用到递归匹配了,以下是匹配php的class类的正则:

preg_match_all('/class [^\{]*(?<R>\{(?:[^{}]+|(?&R))*\})/',$content,$matches );

不过还是有意外情况,在类的字符串变量中包含{或}时,就会出错了。

更多使用方法请参考PHP官方说明文档:

https://www.php.net/manual/zh/regexp.reference.recursive.php


Mine吧 » php正则递归匹配

发表评论