美文网首页
常见正则表达式的两种模式和preg_match函数的匹配细节

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

作者: LittleTrue | 来源:发表于2018-09-09 16:08 被阅读0次

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

    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函数的匹配细节

          本文链接:https://www.haomeiwen.com/subject/hpxdgftx.html