api 正则表达式

本文介绍了正则表达式的基本概念和常用规则,如d、D、w、W、s和S等,并展示了如何在Java中使用正则表达式进行字符串匹配,包括数字、字母、特定格式的验证,如邮箱、URL、身份证号等。通过实例演示了正则表达式在API数据验证中的重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 什么是正则表达式:

正则表达式是由普通字符(如英文字母)以及特殊字符(也称为元字符)组成的文字。该模式对文本

查找时需要匹配的一个或多个字符串描述,给出一个匹配模板。

为什么要使用正则表达式:

正则表达式可以大大简化文本识别工作,现已超出了某种某种语言或者某个系统的局限,

成为被人们广为使用的工具。

正则 Regex: 对字符串的匹配,判断是否是某种格式
        正则表达式也是一段字符串,里面放的是匹配的规则
正则规则:
            \d 数字
            \D 非数字
            \w 数字+英文+下划线
             \W 非数字+英文+下划
            \s 空格
            \S 非空格

正则中的特殊符号
        ? 0-1次
        + 最少一次
        * 任意次
        . 任意字符

Java 正则表达式和 Perl 的是最为相似的。

java.util.regex 包主要包括以下三个类:

  • Pattern 类:

    pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

  • Matcher 类:

    Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

  • PatternSyntaxException:

    PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

 

   1 .整数或者小数:
     str="123455";
    System.out.println(str.matches("\\d+|\\d+[.]\\d+"));
   2. 只能输入数字:
    String str1="123455";
    System.out.println(str1.matches("\\d+"));
    3. 只能输入n位的数字:
    String str2="12345";
    System.out.println(str2.matches("\\d+{5}"));
    4  .只能输入至少n位的数字:
    String str3="12345555555";
    System.out.println(str3.matches("\\d+{5,}"));
    5.只能输入m~n位的数字:
    String str4="123455";
    System.out.println(str4.matches("\\d+{0,15}"));
    6. 只能输入由26个英文字母组成的字符串:
    String str5="jkkjd";
    System.out.println(str5.matches("\\D+"));
    7 .只能输入由26个大写英文字母组成的字符串:
    String str6="GJJHJH";
    System.out.println(str6.matches("[A-Z]+"));
    8 .只能输入由26个小写英文字母组成的字符串:
    String str7="hhsh";
    System.out.println(str7.matches("[a-z]+"));
    9.只能输入由数字和26个英文字母组成的字符串:
    String str8="ass545A";
    System.out.println(str8.matches("[1-9a-zA-Z]+"));
    10.只能输入由数字、26个英文字母或者下划线组成的字符串: 
    String str9="12hh_";
    System.out.println(str9.matches("\\w+"));
    11 .验证Email地址:
    String str10="www.com";
    System.out.println(str10.matches("\\w+[.](com)"));
    12 验证InternetURL:www.baidu.com
    String str11="www.baidu.com";
    System.out.println(str11.matches("\\w+[.]?\\w+[.](com)"));
    13. 验证身份证号(15位或18位数字):
    String str12="12345522222222222";
    System.out.println(str12.matches("\\d+{15,18}"));
    14. 验证一年的12个月:
    String str13="12";
    System.out.println(str13.matches("[1-9]|1[0-2]"));
    15. 验证一个月的31天:
    String str14="30";
    System.out.println(str14.matches("[1-9]|[1-2][0-9]|3[0-1]"));
    16 .六位数的密码,数字只能在3-6里选择:
    String str15="555555";
    System.out.println(str15.matches("[3-6]{6}"));
    17. ip地址:192.168.0.1  
    IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,
     每段数字范围为0~255,段与段之间用英文句点“.”隔开。

    str="192.168.0.1";
    System.out.println(str.matches("1[1-9]\\d[.]1[1-9]\\d[.]\\d[.]\\d"));
    18. 例如:某台计算机IP地址为10.11.44.100。
   分析IP地址的组成特点:250-255、200-249、0-199。 

   这三种情况可以分开考虑, 
    1. 250-255:特点:三位数,百位是2,十位是5,个位是0~5,用正则表达式可以写成:25[0-5] 
    2. 200-249:特点:三位数,百位是2,十位是0~4,个位是0~9,用正则表达式可以写成:2[0-4]\d 
   3. 0-199:这个可以继续分拆,这样写起来更加简单明了. 
     3.1. 0-9:    特点:一位数,个位是0~9,用正则表达式可以写成:\d 
      3.2. 10-99:  特点:二位数,十位是1~9,个位是0~9,用正则表达式可以写成:[1-9]\d 
      3.3. 100-199:特点:三位数,百位是1,十位是0~9,个位是0~9,用正则表达式可以写成:1\d{2} 
于是0-99的正则表达式可以合写为[1-9]?\d,那么0-199用正则表达式就可以写成(1\d{2})|([1-9]?\d),
这样0~255的正则表达式就可以写成(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))) 
    最后,前面3段加上句点.可以使用{3}重复得到,第4段再来一次同样的匹配,得到IP地址的正则表达式:

    str="10.11.44.100";
    System.out.println(str.matches("[1-9]|1[0][.]1[0-9][.][1-9][1-9][.]1\\d{2}"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值