正则表达式总结

作者: 饥人谷_王欢 | 来源:发表于2015-12-27 17:18 被阅读0次

    元字符

    .   匹配除换行符以外的任意字符

    \w 匹配字母数字下划线或者中文

    \d 匹配数字

    \s 匹配空白

    \b 匹配开始或者结束

    ^ 匹配字符串的开始

    $ 匹配字符串的结束

    常用的限定符

    * 重复零次或更多次

    + 重复一次或更多次

    ? 重复零次或一次

    {n} 重复n次

    {n,} 重复n次或更多次

    {n,m} 重复n到m次

    常用的反义代码

    \W匹配任意不是字母,数字,下划线,汉字的字符

    \S匹配任意不是空白符的字符

    \D匹配任意非数字的字符

    \B匹配不是单词开头或结束的位置

    [^x]匹配除了x以外的任意字符

    [^aeiou]匹配除了aeiou这几个字母以外的任意字符

    常用分组语法

    捕获

    (exp)匹配exp,并捕获文本到自动命名的组里

    (?exp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)

    (?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号

    零宽断言

    (?=exp)匹配exp前面的位置

    (?<=exp)匹配exp后面的位置

    (?!exp)匹配后面跟的不是exp的位置

    (?<!exp)匹配前面不是exp的位置

    注释

    (?#comment)这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

    懒惰限定符

    *?重复任意次,但尽可能少重复

    +?重复1次或更多次,但尽可能少重复

    ??重复0次或1次,但尽可能少重复

    {n,m}?重复n到m次,但尽可能少重复

    {n,}?重复n次以上,但尽可能少重复

    常用正则表达式总结

    中文字符  [\u4e00-\u9fa5]

    QQ号 ^[1-9]\d{4,9}$

    手机号 ^1[345789]\d{9}$

    email  ^.+@.+$

              \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    身份证号 

    1、15位  (1)1~6位为地区代码

                   (2)7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期

                   (3)第13~15位为顺序号

    ^[1-9]\d{7}(0\d|1[0-2])([012]\d|3[01])\d{3}$

    2、18位

    1-2位省、自治区、直辖市代码;3-4位地级市、盟、自治州代码;5-6位县、县级市、区代码;7-14位出生年月日,比如19670401代表1967年4月1日;15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数 18位为校验码,0-9和X。

    ^[1-9]\d{5}[1-2]\d{3}(0\d|1[0-2])([012]\d|3[01])\d{3}(\d|[Xx])$

    URL网址 [a-zA-z]+://[^\s]*

    IP地址 (2[0-4]\d|25[0-5]|\[01]?\d?\d?\.){3}(2[0-4]\d|25[0-5]|\[01]?\d?\d?)

    匹配特定数字:

    ^[1-9]\d*$    //匹配正整数

    ^-[1-9]\d*$   //匹配负整数

    ^-?[1-9]\d*$   //匹配整数

    ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)

    ^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数

    ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数

    ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)

    ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)

    匹配特定字符串:

    ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串

    ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

    ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

    ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

    ^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

    相关文章

      网友评论

        本文标题:正则表达式总结

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