PHP里面的preg_match_all()函数怎么使用

早上,我写了一篇关于php过滤特殊字符并保留中文、数字和英文字母的文章,其中有用到默认函数preg_match_all(),今天有网友私信我,问我能不能介绍一下preg_match_all()函数,我查了一些信息并把它写进了这篇文章。

PHP里面的preg_match_all()函数怎么使用

php preg_match_all() 函数

preg_match_all():用来执行全局正则表达式匹配。

语法如下:

参数如下:

pattern:搜索的模式,字符串形式。

subject:输入字符串。

matches:多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。

flags:数组结果排序,可以结合下面的几个标记使用

1、PREG_PATTERN_ORDER:结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

2、REG_SET_ORDER::结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

3、PREG_OFFSET_CAPTURE: 如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。

注意:PREG_PATTERN_ORDER 和 PREG_SET_ORDER 不能同时使用,如果没有指定排序的标记,则默认为 PREG_PATTERN_ORDER

offset: 通常, 查找时从目标字符串的开始位置开始。(单位为字节)

返回值:

preg_match_all():返回完整匹配次数有可能为0,如果发生错误则返回false

php preg_match_all() 函数使用方法

例1:

查找html代码中的所有p标签,并输出

输出结果:

注意:

1、上面的示例中没有指定了 preg_match_all() flags 参数,则默认为  PREG_PATTERN_ORDER

2、输出的 $array 数组中,$array[0]保存完整模式的所有匹配, $array[1] 保存第一个子组的所有匹配

例2:

输出结果:

注意:

1、上面的示例中指定了 preg_match_all() flags 参数值为 PREG_SET_ORDER

2、输出的 $array 数组中,第一个元素为第一次匹配到结果(包含子组),第二个元素为第二次匹配的结果(包含子组),以次类推

例3:

输出结果:

注意:

1、上面的示例中指定了 preg_match_all() flags 参数值为 PREG_OFFSET_CAPTURE

2、输出的 $array 数组中,会额外的增加匹配到的字符串相对于整个被处理字符串的偏移量

转载请注明出处:看飞碟 » PHP里面的preg_match_all()函数怎么使用

赞 (0) 送糖

评论 0

评论前必须登录!

登陆 注册

可爱的来客!请作者吃颗糖吧

支付宝扫一扫打赏

微信扫一扫打赏

你好,我是Jeson