您的位置:首页 > 编程语言 > PHP开发

php preg_match_all() 用法

2017-04-30 18:20 549 查看
preg_match_all()函数用于进行正则表达式全局匹配,成功返回整个模式匹配的次数(可能为零),如果出错返回FALSE。
intpreg_match_all(stringpattern,stringsubject,arraymatches[,intflags])
pattern正则表达式
subject需要匹配检索的对象
matches存储匹配结果的数组
flags可选,指定匹配结果放入matches中的顺序,可供选择的标记有:PREG_PATTERN_ORDER:默认,对结果排序使$matches[0]为全部模式匹配的数组,$matches[1]为第一个括号中的子模式所匹配的字符串组成的数组,以此类推PREG_SET_ORDER:对结果排序使$matches[0]为第一组匹配项的数组,$matches[1]为第二组匹配项的数组,以此类推PREG_OFFSET_CAPTURE:如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量
$str='2015-9-15XXXXXXXX,2015-9-15XXXXXXXX,2015-9-15XXXXXXXX,2015-9-15XXXXXXXX,';
preg_match_all('/\d{4}-\d+\-\d+(.*?),/is',$str,$matched);

echo"<pre>";
print_r($matched);
echo"</pre>";
exit;
参数为默认 $matched=  
Array
(
[0]=>Array
(
[0]=>2015-9-15XXXXXXXX,
[1]=>2015-9-15XXXXXXXX,
[2]=>2015-9-15XXXXXXXX,
[3]=>2015-9-15XXXXXXXX,
)

[1]=>Array
(
[0]=>XXXXXXXX
[1]=>XXXXXXXX
[2]=>XXXXXXXX
[3]=>XXXXXXXX
)

)
数组$matched[0]表示全匹配的数组。表示:\d{4}-\d+\-\d+(.*?),所匹配的信息,包括非括号中的信息
$matched[1]表示第一个括号中的数组信息。如果有第二个括号,会有$matched[2]匹配括号2中的信息
$str='2015-9-15XXXXXXXX,2015-9-15XXXXXXXX,2015-9-15XXXXXXXX,2015-9-15XXXXXXXX,';preg_match_all('/\d{4}-\d+\-\d+(.*?),/is',$str,$matched,PREG_SET_ORDER);echo"<pre>";print_r($matched);//print_r($matched[1]);echo"</pre>";exit;
$matched=  
Array([0]=>Array([0]=>2015-9-15XXXXXXXX,[1]=>XXXXXXXX)[1]=>Array([0]=>2015-9-15XXXXXXXX,[1]=>XXXXXXXX)[2]=>Array([0]=>2015-9-15XXXXXXXX,[1]=>XXXXXXXX)[3]=>Array([0]=>2015-9-15XXXXXXXX,[1]=>XXXXXXXX))

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: