php正则匹配网页数据 php正则匹配html标签内容
php 正则表达式 url匹配
1,preg_grep(pattern,array);它的返回值是一个新数组,新数组的元素是成功匹配的元素。
创新互联专业为企业提供营口网站建设、营口做网站、营口网站设计、营口网站制作等企业网站建设、网页设计与制作、营口企业网站模板建站服务,10多年营口做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
2,preg_match(mode,string);它的返回值是一个整数,0或1,0表示匹配不成功,1表示匹配成功,preg_match()将在第一个匹配成功后停止搜索,不再继续匹配。
3,preg_match_all(模式,字符串,保存匹配结果数组(multidimensional array));在搜索字符串中,所有匹配的模式都提供正则表达式的匹配结果,并以指定的顺序将它们输出到指定的数组。它执行与字符串末尾匹配的全局正则表达式匹配。
4,preg_quote(string);转义正则表达式字符,preg_quote()需要一个参数字符串,并在每个正则表达式语法中为该字符添加反斜杠。
5,转换效果如图所示。
正则表达式匹配网页内容
所有捕获组里面按照我自己的理解分别是:
场次,联赛;类型;开赛时间;主队分组;主队;比分;客队;客队分组;平均赔率。不确定第一条数据里面的那个09,07是不是主队分组,和客队分组,如果不是的话,要那个数据你告诉我一下。我给你修改。对比一下正则和图片,你看看对不对的。捕获项里面有空格符号,应该不影响的吧,如果影响的话,就会比较麻烦的,但是也可以弄,你可以追问的。
tr\s*td(\d*)/td\s*td(?:a[^]*?|)([^]*?)(?:/a|)/td\s*td([\d -:]*)/td\s*td\s*span[^]*?\[(\d+)\]/span\s*span\s*a[^]*?([^]*?)/a\s*/span\s*span class="sp_bf"([^]*?)/spanspana[^]*?([^]*?)/a\s*/span\s*span class="sp_sz"\s*\[(\d*)\]\s*/span\s*/td\s*td[\s\S]+?/td\s*td([^]*?)/td\s*/tr
图片:
php正则匹配页面中所有value=""的值,引号中为任意
?php
$str = 'input type="button" name="btn1" value="123"input type="button" name="btn2" value="456"input type="button" name="btn3" value="789"';
preg_match_all('|value="(.*)"|isU',$str,$arr); //匹配到数组$arr中;
print_r($arr[1]); //$arr[1]就是匹配的结果
?
php 正则表达式 匹配网站内容
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;
}
分享标题:php正则匹配网页数据 php正则匹配html标签内容
当前路径:http://myzitong.com/article/ddcgepg.html