请教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 只是提取'(<'和'>)'之间的内容.(还要考虑各种嵌套的可能) 我用jquery的AJAX通过POST过来数据 appliction/json-rpc 接收不到,这是为什么?? php 如何让office文档和pdf文件直接显示在网页中? apache 配置时候,phpinidir 这个选项是 apache其中的配置命令 还是php的命令。 学php有什么好的教程,刚开始学的? 本人不会php!请人帮我转一个简单文件。 _GET 得不到变量 html和php的执行效率讨论 找一个PHP函数等同于mysql里的PASSWORD函数 简单问题:PHP中如何判断用户没有使用@符号? 关于子类方法重载调用父类方法的问题 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?