pregmatchallphp
㈠ 请问php里面preg_match与preg_match_all有什么区别
preg_match只匹配一次,preg_match_all是全文匹配,即所有跟表达式一致的都找出来。
举个例子:abc
1、取出符号里的字符。preg_match_all("/(\w)+/","abc",$abc);print_r($abc);
显示结果为
Array( [0] = Array ( [0] = a [1] = b [2] = c )
[1] = Array ( [0] = a [1] = b [2] = c )
)
2、preg_match("/(\w)+/","abc",$abc);print_r($abc);
显示结果
Array( [0] = a [1] = a)
这两个函数的区别就是:preg_match_all()搜索匹配全部情况;preg_match()搜索匹配到一个后终止。
preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。preg_match_all() 则相反,会一直搜索到 subject 的结尾处。如果出错 preg_match() 返回 FALSE。
希望我的回答能给你带来帮助!
㈡ 怎么用php正则获得a标签内的文字啊
php中正则匹配只要使用这两个函数:
preg_match_all
preg_match
这里使用preg_match_all,代码如下:
$subject='<ahref="xxx.php">abc测试</a>';//假设这是需要匹配的字符串
$pattern='/<ahref="[^"]*"[^>]*>(.*)</a>/';//这是匹配的正则表达式
preg_match_all($pattern,$subject,$matches);//开始匹配,该函数会把匹配结果放入$matches数组中
echo"<pre>";
print_r($matches);
/**
结果是:
Array
(
[0]=>Array
(
[0]=>abc测试
)
[1]=>Array
(
[0]=>abc测试
)
)
*/
㈢ php采集数据的时候,preg_match_all('/<time>(.*)<\/time>/iUs',$res,$time);
preg_match_all的结果是一个数组,如果需要你可以用var_mp吧$time输出,然后把你需要的字段格式化取出来。
㈣ 如何运用PHP函数preg_match_all测试正则表达式效果
php自学网2< /div< div id="biuuu_3"php自学网3< /div'; PHP函数preg_match_all实例要求:分别将每一个DIV元素的ID和内容取出,如biuuu,biuuu_2,biuuu_3,php自学网,php自学网2和php自学网3(一些常用的抓站方法就是这样匹配的) 分析:字符串是一个简单的HTML元素,每一个DIV元素对应该一个ID和内容,并且是独立的,首先考虑如何取出一个DIV内的ID值和内容, 如:php自学网,然后匹配其它类似的元素。一个DIV中需要取出两个值,也就是两个匹配的表达式,第一个表达式用于匹配ID值(biuuu),第二个表 达式用于匹配ID的内容(php自学网),正则表达式常用的表达式使用小括号,那么前面的元素将会变成如下形式: < div id="(biuuu)"(php自学网)< /div< div id="(表达式1)"(表达式2)< /div 表达式1:[a-zA-Z0-9_]+ (表示匹配大小写字母,数字和下划线) 表达式2:[^<]+ (表示不匹配<和字符) 这样,PHP函数preg_match_all需要匹配的子表达式就实现了,但是还要需要匹配一个的表达式,方法如下: 表达式:/ '"(表达式1)"'(表达式2)/ 注意其中的双引号"和/需要使用转义字符转义,然后把前面两个表达式放进去,如下: