匹配成对的括号并且嵌套层次未知时,就要用到递归匹配了,以下是匹配php的class类的正则:
preg_match_all('/class [^\{]*(?<R>\{(?:[^{}]+|(?&R))*\})/',$content,$matches );
不过还是有意外情况,在类的字符串变量中包含{或}时,就会出错了。
更多使用方法请参考PHP官方说明文档:
https://www.php.net/manual/zh/regexp.reference.recursive.php
匹配成对的括号并且嵌套层次未知时,就要用到递归匹配了,以下是匹配php的class类的正则:
preg_match_all('/class [^\{]*(?<R>\{(?:[^{}]+|(?&R))*\})/',$content,$matches );
不过还是有意外情况,在类的字符串变量中包含{或}时,就会出错了。
更多使用方法请参考PHP官方说明文档:
https://www.php.net/manual/zh/regexp.reference.recursive.php
发表回复