正则小问题 本帖最后由 snipersheep 于 2013-08-01 15:52:47 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你要得到的事内容A和内容B呢,还是 id="test_0"的text和 id="test_1"的内容呢? 内容A 与 内容B跟ID无关。不是JS。是PHP取数据。 $subject = '<div class="superStar" id="test_0"> you dead! <div class="show">hello</div> <span>james</span> </div> <div class="superStar" id="test_1"> shit! <div class="contne">hi</div> <ul><li>list</li></ul> </div>';$pattern = '/这里正则如何写/';preg_match($pattern, $subject, $matches);print_r($matches);$pattern_1 = '/这里正则如何写/';preg_match($pattern_1, $subject, $matches);print_r($matches);分别取到结果如下:数据一:you dead!<div class="show">hello</div><span>james</span>数据二:shit!<div class="contne">hi</div><ul><li>list</li></ul> $str = '<div class="none" id="test_0">内容A</div><div class="supe" id="test_1">内容B</div>';preg_match_all('/<div(.*?)>(.*?)<\/div>/i',$str,$match);echo $match[2][0];//内容Aecho $match[2][1];//内容B preg_match_all('/<div class=\"superStar\"(.*?)>(.*?)<\/div>/is',$subject,$match);var_dump($match); array(3) { [0]=> array(2) { [0]=> string(86) "<div class="superStar" id="test_0"> you dead! <div class="show">hello</div>" [1]=> string(80) "<div class="superStar" id="test_1"> shit! <div class="contne">hi</div>" } [1]=> array(2) { [0]=> string(12) " id="test_0"" [1]=> string(12) " id="test_1"" } [2]=> array(2) { [0]=> string(45) " you dead! <div class="show">hello" [1]=> string(39) " shit! <div class="contne">hi" }} preg_match_all('/<div class=\"superStar\"(.*?)>(\s*(?:<div.*<\/div>\s*)*)<\/div>/us',$subject,$match);echo $match[0][0];echo '<hr />';echo $match[0][1]; <?php$subject = '<div class="superStar" id="test_0"> you dead! <div class="show">hello</div> <span>james</span> </div> <div class="superStar" id="test_1"> shit! <div class="contne">hi</div> <ul><li>list</li></ul> </div>';preg_match_all('/<div[^>]+>(([^<]*|<(?!div)|(?R))+)<\/div>/us',$subject,$match);echo $match[0][0];echo '<hr />';echo $match[0][1]; 错哪里了? 我菜鸟! 验证图片是怎么验证的了,怎么判断图片上的数据 查询结果显示问题 php中多重include 路径问题 无法显示php 下面有两段代码为什么执行结果不一样,帮解释,谢谢 使用dw还是使用zend studio呀? kxpaser类中的乱码问题,在线等,马上给分,谢谢 马上立刻求救!php 怎样 连接 mysql. 如何统计一个网站的在线人数???????? PHP常用的算法有哪些?????知道的告知下,3Q 求教在notepad++下快速调试代码片段
跟ID无关。不是JS。是PHP取数据。
you dead!
<div class="show">hello</div>
<span>james</span>
</div>
<div class="superStar" id="test_1">
shit!
<div class="contne">hi</div>
<ul><li>list</li></ul>
</div>';$pattern = '/这里正则如何写/';
preg_match($pattern, $subject, $matches);
print_r($matches);$pattern_1 = '/这里正则如何写/';
preg_match($pattern_1, $subject, $matches);
print_r($matches);分别取到结果如下:
数据一:
you dead!
<div class="show">hello</div>
<span>james</span>数据二:
shit!
<div class="contne">hi</div>
<ul><li>list</li></ul>
preg_match_all('/<div(.*?)>(.*?)<\/div>/i',$str,$match);
echo $match[2][0];//内容A
echo $match[2][1];//内容B
var_dump($match);
[0]=>
array(2) {
[0]=>
string(86) "<div class="superStar" id="test_0">
you dead!
<div class="show">hello</div>"
[1]=>
string(80) "<div class="superStar" id="test_1">
shit!
<div class="contne">hi</div>"
}
[1]=>
array(2) {
[0]=>
string(12) " id="test_0""
[1]=>
string(12) " id="test_1""
}
[2]=>
array(2) {
[0]=>
string(45) "
you dead!
<div class="show">hello"
[1]=>
string(39) "
shit!
<div class="contne">hi"
}
}
echo $match[0][0];
echo '<hr />';
echo $match[0][1];
$subject = '<div class="superStar" id="test_0">
you dead!
<div class="show">hello</div>
<span>james</span>
</div>
<div class="superStar" id="test_1">
shit!
<div class="contne">hi</div>
<ul><li>list</li></ul>
</div>';
preg_match_all('/<div[^>]+>(([^<]*|<(?!div)|(?R))+)<\/div>/us',$subject,$match);
echo $match[0][0];
echo '<hr />';
echo $match[0][1];