常见正则表达式的两种模式和preg_match函数的匹配细节

正则匹配一般有两种使用场景:

1、在一个字符串中寻找符合规则的子串, 进行替换或删除

在php中,提供了preg_math()和preg_match_all函数进行正则匹配。关于这两个函数原型如下:

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

提供preg_replace进行正则替换:

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
2、检测一个字符串是否符合指定的正则规则

使用修饰符$,即可检测当前字符串是否符合正则规则。


正则规则注释符的影响:

可以使用: ?<说明> 对编写的正则表达式进行文本说明, 但是在编译过程中, 一些正则验证网站可以正常编译并返回结果, 但是在代码中,例如使用preg_match则正则不能正常运用, 把注释符去掉则正常, 估计是由于不同语言内核实现的正则语言引擎是不同的造成的。


常见的正则规则:

身份证号码: ^\d{17}[0-9xX]$

手机号码: ^1[3456789]{1}\d{9}$

电话: ^(((010|021|020|022|023|024|025|026|027|028|029|852)|((010)|(021)|(022)|(023)|(024)|(025)|(026)|(027)|(028)|(029)|(852)))?\D?\d{8}|((0[3-9][1-9]{2})|((0[3-9][1-9]{2})))?\D?\d{7,8})$

零和非零开头的数字:^(0|[1-9][0-9]*)$

中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于PCRE的介绍以及实现正则表达式功能的所有说明,都可以在官方手册中看到:正则表达式(兼容 Perl) 一、认识...
    拿破仑蛋糕阅读 1,626评论 0 1
  • 概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语...
    醉于麦田阅读 516评论 0 0
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,184评论 0 9
  • PHP常用正则表达式汇总 正则表达式在 PHP 中的应用在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正...
    DragonRat阅读 1,478评论 0 4
  • 转载自知乎 https://zhuanlan.zhihu.com/p/30573054 正则表达式是一种字符串匹配...
    skarner阅读 1,776评论 0 1