作者:远处有个蘑菇丶 | 来源:互联网 | 2014-03-27 18:16
【置顶】有木有知道正则表达式中的嵌套匹配的语法的?求大神讲解,百度搜了很多看不明白,希望大神能讲解一下语法是怎样的,谢谢了!例如:(a(b(d))c)(e(f(g))m).....我想得到(a(b(d))c) 和 (e(f(g))c)
【置顶】有木有知道正则表达式中的嵌套匹配的语法的?
求大神讲解,百度搜了很多看不明白,希望大神能讲解一下语法是怎样的,谢谢了!
例如:
(a(b(d))c)(e(f(g))m).....
我想得到
(a(b(d))c) 和 (e(f(g))c)
------解决方案--------------------
$str = '(a(b(d))c)(e(f(g))m)';
$reg = '#\(([^\(\)]+------解决方案-------------------- (?R))*\)#';
$matches = array();
preg_match_all($reg, $str, $matches);
var_dump($matches); ------解决方案-------------------- 引用: Quote: 引用:
$str = '(a(b(d))c)(e(f(g))m)';
$reg = '#\(([^\(\)]+------解决方案-------------------- (?R))*\)#';
$matches = array();
preg_match_all($reg, $str, $matches);
var_dump($matches);
能吧括号换成html标签然后讲解一下吗?
你直接贴你自己实际代码 别人好帮你实际分析
------解决方案--------------------
$str = '
';
//$reg = '#\(([^\(\)]+
------解决方案-------------------- (?R))*\)#';
//匹配出id为2和id为35的div所包含的内容
$reg = '#
------解决方案-------------------- 35)">(<([^>\s]+)[^>]*>([<>]*------解决方案-------------------- (?1))*?\2>)*
#';
preg_match_all($reg, $str, $matches);
echo "
";
var_dump($matches);
echo " ";
虽然可以用,但是不推荐这样用,还是用DOMDocument之类的工具获取内容比较好,毕竟他们更加擅长。