常见正则表达式的两种模式和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_]+$

你可能感兴趣的:(常见正则表达式的两种模式和preg_match函数的匹配细节)