美文网首页scrape技术文
常见正则表达式

常见正则表达式

作者: everfight | 来源:发表于2016-06-19 14:45 被阅读933次

    网络上类似的正则表达式整理的很多,但是很少配有专门的案例。下面是我找到一个博客里面的常用正则表达式,希望通过常用的正则表达式归纳出下图的那些结论。

    推荐书籍:《精通正则表达式》
    正则在线检测:http://www.regexpal.com/

    正则表达式.png

    一、校验数字的表达式

    1.数字:^[0-9]*$
    2.n位的数字:^\d{n}$
    3.至少n位的数字:^\d{n,}$
    4.m-n位的数字:^\d{m,n}$

    1. \d 数字:[0-9]
    2. {m,n} 匹配前一个字符m至n次
       {,n} 匹配前一个字符0至n次
       {m,} 匹配前一个字符m至无穷次
    3. * 匹配前一个字符0或无限次
    4. ^ 匹配字符串开头
        $ 匹配字符串结尾
    

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

    1. 左右表达式任意一个
    

    6.非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

    1. ()被括起来的表达式将作为分组
    2. ?匹配前一个字符0次或1次
    

    7 带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$

    1. \转义字符
    2. ?重复0次或1次
    

    8 正数、负数、和小数:^(-|+)?\d+(.\d+)?$
    9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
    10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
    11 非零的正整数:^[1-9]\d$
    12 非零的负整数: ^-[1-9]\d
    $
    13 非负整数:^\d+$

    1. 匹配前一个字符1次或无限次
    

    14 非正整数:^((-\d+)|(0+))$
    15 非负浮点数:^\d+(.\d+)?$
    16 非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$
    17 正浮点数:^[0-9]\d.\d$

    二、校验字符的表达式

    1 汉字:^[\u4e00-\u9fa5]{0,}$

     对应的是中文的unicode编码
    

    2 英文和数字:^[A-Za-z0-9]+$
    3 长度为3-20的所有字符:^.{3,20}$
    4 由26个英文字母组成的字符串:^[A-Za-z]+$
    5 由26个大写英文字母组成的字符串:^[A-Z]+$
    6 由26个小写英文字母组成的字符串:^[a-z]+$
    7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
    8 由数字、26个英文字母或者下划线组成的字符串:^\w+$
    9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
    10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$
    11 可以输入含有^%&',;=?$"等字符:[^%&',;=?$]+

    暂时不理解:\X22出现的必要性
    

    12 禁止输入含有的字符:[^\x22]+

    三、特殊需求表达式

    1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
    2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
    3 InternetURL:[a-zA-z]+://[^\s]* 
    4 手机号码:^(13[0-9]|14[5|7]|15[0-9])\d{8}$
    5 电话号码 ^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$ 
    6 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
    7 身份证号(15位、18位数字):^\d{15}|\d{18}$
    8 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
    9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
    11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$  
    12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
    13 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
    14 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$ 
    15 空白行的正则表达式:\n\s*\r    (可以用来删除空白行)
    16 首尾空白字符的正则表达式:^\s*|\s*$
    17腾讯QQ号:[1-9][0-9]{4,}    (腾讯QQ号从10000开始)
    18 中国邮政编码:[1-9]\d{5}(?!\d)    (中国邮政编码为6位数字)
    19 IP地址:\d+\.\d+\.\d+\.\d+    (提取IP地址时有用)
    

    参考链接

    1、最全的正则表达式大全
    2、正则表达式菜鸟教程
    3、正则表达式30分钟入门教程

    相关文章

      网友评论

        本文标题:常见正则表达式

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