php 求一个正则取值问题 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/20 07:15:58
字符串:
$str = 任意字符串1<aaa 任意字符串2>任意字符串3<aaa 任意字符串4>任意字符串5</aaa>
我想取出:
$arr1 = 任意字符串1
$arr2 = 任意字符串2
$arr3 = 剩下的东东(任意字符串3<aaa 任意字符串4>任意字符串5</aaa>)
我写的正则取出来不符合我的要求
if(preg_match("/^(.*)?<aaa\s+.*\s*>(.*)?$/",$str,$matches)){
}我写的只能取出
$arr1 = 任意字符串1<aaa 任意字符串2>任意字符串3
$arr2 = 任意字符串4
$arr3 = 任意字符串5</aaa>

请高手指点谢谢!!!

preg_match ('/^(.*?)<aaa\s(.*?)>(.*)$/', $str, $out);
echo $out[1] . "\n";
echo $out[2] . "\n";
echo $out[3] . "\n";

//注意:这里用到非贪婪匹配
//'^(.*?)<aaa', 匹配组匹配其实字符到碰到第一个'<aaa'前的所有字符。

关于什么是贪婪匹配,到我的博客看看吧。刚写的文章。
61dh 。com / blog

Adam
61dh 。com