请教PHP的$string配对问题 比如$string='sa(<d>)f(<>)klasfjl(<(<asdf>)(<asdf>)>)'实现:把"(<" ">)"中的内容提取出来.输出每个(<......>)中的内容.嵌套"(<",">)"的和各种'(<' '>)'的组合方式也要考虑在内.请问实现这个用什么方法比较好? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正则,或一个字符一个字符过。正则比较方便点如果能控制String 内容,最好用XML格式 $string = "sa(<d>)f(<>)klasfjl(<(<asdf>)(<asdf>)>";$newstr = str_replace("(<", "(", $string);$newstr = str_replace(">)", ")", $newstr);$len =strlen($newstr);$stack = array();$pos = array();for ($i=0; $i<$len; $i++){ if ($newstr[$i] == "(") { array_push($pos, $i); } elseif ($newstr[$i] == ")") { $start_pos = array_pop($pos); $stack[] = trim(substr($newstr, $start_pos+1, $i-$start_pos-1)); }}var_export($stack); preg_match_all('/\(\s\<([^\>\(\<\)]*?)\>\)/',$string,$matches);var_dump($matches);不全。不理解你说的匹配组合内容什么意思。 是否是要 合并( <( <asdf>)( <asdf>)>) 内的匹配内容 成为 asdfasdf? NO 只是提取'(<'和'>)'之间的内容.(还要考虑各种嵌套的可能) 向discuz数据库中插入数据时。。要更新哪几个表,才能显示呢?。。求高手指点。。高分!!!!!!!!!!!!!!! curl抓取超时 就一个能够返回js里src属性值的函数,难 请教DOCTYPE声明在使css在ie6 ie7失效 jsp怎样动态添加一组文本框 PHP的字符转换出错 谢谢 一个时间的问题 http://www.fjscw.com/goodhand/gb/list.php这些产品的小图都是用GD库处理的,大小都在125*140,但如何才能使没占满的地方显示白色。 散分~ 庆祝新的一年~ thinkphp 在本地环境无法打开 php权限问题 不能运行php
正则比较方便点
如果能控制String 内容,最好用XML格式
$newstr = str_replace("(<", "(", $string);
$newstr = str_replace(">)", ")", $newstr);$len =strlen($newstr);$stack = array();
$pos = array();for ($i=0; $i<$len; $i++)
{
if ($newstr[$i] == "(")
{
array_push($pos, $i);
}
elseif ($newstr[$i] == ")")
{
$start_pos = array_pop($pos);
$stack[] = trim(substr($newstr, $start_pos+1, $i-$start_pos-1));
}
}
var_export($stack);
var_dump($matches);不全。不理解你说的匹配组合内容什么意思。 是否是要 合并( <( <asdf>)( <asdf>)>) 内的匹配内容 成为 asdfasdf?