preg_match — 执行匹配正则表达式

preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int

参数 是否必须 说明
pattern 要搜索的模式
subject 输入字符串
matches $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
flags 如果传递PREG_OFFSET_CAPTURE,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。
offset 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个位置开始搜索(单位是字节)。

返回值:返回 pattern 的匹配次数,如果发生错误preg_match()返回 FALSE

<?php
$str = 'abcdabccd';
preg_match('/(ab)(c+)/', $str, $matches);
preg_match('/(ab)(c+)/', $str, $matches2,PREG_OFFSET_CAPTURE);
preg_match('/(ab)(c+)/', $str, $matches3,PREG_OFFSET_CAPTURE,1);
var_dump($matches);
var_dump($matches2);
var_dump($matches3);

preg_match_all — 执行一个全局正则表达式匹配

preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset= 0 ]]] ) : int

参数 是否必须 说明
pattern 要搜索的模式,字符串形式。
subject 输入字符串。
matches 多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。
flags

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

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

(3)PREG_OFFSET_CAPTURE:如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。 注意这会改变matches中的每一个匹配结果字符串元素,使其 成为一个第0个元素为匹配结果字符串,第1个元素为 匹配结果字符串在subject中的偏移量。

offset 用于 从目标字符串中指定位置开始搜索(单位是字节)。

返回值:返回完整匹配次数(可能是0),或者如果发生错误返回FALSE

<?php
$str = 'abcdabccd';
preg_match_all('/(ab)(c+)/', $str, $matches);
preg_match_all('/(ab)(c+)/', $str, $matches2,PREG_SET_ORDER);
preg_match_all('/(ab)(c+)/', $str, $matches3,PREG_OFFSET_CAPTURE);
var_dump($matches);
var_dump($matches2);
var_dump($matches3);

preg_match和preg_match_all()相关推荐

  1. preg_match 与 preg_match_all 区别

    正则匹配在php用的还挺多的,应该有相对一部分的都不知道preg_match 与 preg_match_all 的区别吧 以下我们开始讲解一下这两个的区别 preg_match 只匹配一次,preg_ ...

  2. preg_match和preg_match_all的区别

    preg_match只匹配一次,preg_match_all是全文匹配 preg_match 字符串比对解析. 语法: int preg_match(string pattern, string su ...

  3. preg_match与preg_match_all区别

    定义: preg_match_all:从左边开始一直到尾部,找出所有匹配的字符串.匹配结果$matches为二维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的 ...

  4. php的正则匹配方法preg_match_all问题

    2019独角兽企业重金招聘Python工程师标准>>> 用preg_match_all匹配时,时不时匹配失败,郁闷了很久,无意中在网上找到答案: 用正则从字符串中提取内容失败,反复检 ...

  5. php preg match中文,PHP preg_match 函数怎么匹配中文?

    php中的preg_match()函数总有那么一个傻逼,曾经为了一个人拒绝了所有人,最后却落得一无所有. $filename=$file['name'];if (.preg_match('/\\.(g ...

  6. php正则表达式函数 preg_replace用法

    preg_replace (PHP 3>= 3.0.9, PHP 4 ) preg_replace -- 执行正则表达式的搜索和替换 说明 mixed preg_replace ( mixed ...

  7. PHP整理笔记八正则表达式

    一.正则表达式语法(Perl风格) Perl一直被认为是最伟大的解析语言之一,它提供了一种全面的正则表达式,即使是最复杂的字符串模式,也可以用这种正则表达式语言搜索和替换.PHP开发人员认识到,与其重 ...

  8. PHP查看PECL模块包含的函数

    为什么80%的码农都做不了架构师?>>>    http://php.net/manual/zh/function.get-extension-funcs.php 查看PECL扩展 ...

  9. 史上最全PHP正则表达式实例汇总

    收集了一份php正则表达式的实例教程,真心不错,记录下. 正则表达式用于字符串处理.表单验证等场合,实用高效. 一些常用的表达式: $str = preg_replace("/(<a. ...

最新文章

  1. Openstack各个组件的关系简介
  2. 马斯克近日表示:Neuralink脑机接口有望明年用于人类
  3. logback.xml配置
  4. Windows使用自定义消息实现进程之间通信
  5. Java异常处理机制(基础知识)
  6. 【echarts 中国地图】vue实现中国地图,省份居中china.json文件下载
  7. python毕业论文参考文献格式_毕业论文参考文献规范格式
  8. 小码哥php教程,小码哥Java从0到高级工程师
  9. Xposed 插件开发之二: Xposed的一些知识
  10. 结合黏菌觅食行为的改进多元宇宙算法
  11. Python Project
  12. 论文投稿指南——中文核心期刊推荐(环境科学 2)
  13. 逆矩阵的概念、应用和求解
  14. mysql批量替换字段关键词_Mysql批量替换某表里面某个字段的关键字
  15. java 微信转账 ca_error_java,微信支付退款_微信支付退款接口调用证书出现错误,java,微信支付退款,ssl - phpStudy...
  16. c++ tm结构体和time_t时间戳的转换
  17. 推荐一个Windows10下的搜索软件:Everything
  18. 华为 1+X《网络系统建设与运维(中级)》认 证实验模拟上机试题
  19. leetcode 数组独数问题
  20. COHERENT VERDI 18w激光电源维修注意事项

热门文章

  1. 华强北山寨“AirPods 3”出圈,油管博主直夸好
  2. PPT的备注区字体太小,还改不了?
  3. go语言输出汉字的数量
  4. (Field II仿真)合成发射孔径超声成像
  5. 【R语言】白葡萄酒的EDA分析
  6. 写故事的人,流逝的时光
  7. 调用浏览器下载图片 java实现
  8. 计算机连接电视显示超范围,HDMI连接后电脑操作界面的边框超出电视屏幕,怎么解决...
  9. Obsidian 插件(一):DataView 的使用
  10. 获取的字段值是空值或者为null,而你自己的需求就是想要获取的字段为一个 * 默认的值