4个回答
展开全部
如果你要<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 <li></li>标签中的内容,可以用preg_match_all
//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];
//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)<\/li>/is';
preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);
foreach($new_arr as $kkk){
echo $kkk;
}
//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];
//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)<\/li>/is';
preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);
foreach($new_arr as $kkk){
echo $kkk;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你描述的不是很清楚,你的数据格式是什么样的呢。
你也可以正则匹配所有
<?php
preg_match_all('/^3[\d]{5}/is', $string, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
?>
望采纳 Thx
更多追问追答
追问
数据格式为字符串,如“abc123hd360010随意文字 380190”
我想提取360010和380190出来
用你的好像不行
追答
<?php
$string = 'abc123hd360010-abc123hd380190';
preg_match_all('/3[0-9]{5}/is', $string, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
?>
这样
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Preg_match("^3[0-9]{5}",$string) //$string是要被匹配的字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 preg_match( '/^3[0-9]{5}/', $str, $tostr );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询