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://azwzsj.com/article/ddcgepg.html