正则表达式

正则表达式的基本语法规则

字符说明
^表达式的开始
$表达式的结尾
[a-z]一个字符,字符范围是 a 到 z
[1-9]一个字符,字符范围是 1 到 9
\d表示一个数字(0 - 9)
\D表示一个非数字(0 - 9) 除外
\d{n}表示 n 个数字,n 可以是任意值
\w表示 a 到 z、A 到 Z、0 到 9 、下划线_
\W表示除了 a 到 z、A 到 Z、0 到 9 、下划线_ 的所有
[\u4e00-\u9fa5]表示一个汉字
[\u4e00-\u9fa5]{n,m}表示 n 到 m 个汉字
*表示 0 个或者多个 * 之前的字符
.表示一个任意字符
+表示一个或多个 + 前面的字符
?表示 0 个或一个 ? 前面的字符
{n}表示 n 个
{n,}表示 n 个或者多个
{n,m}表示 n 个 到 m 个

代码演示

        String s = "a";
        System.out.println(s.matches("[a-z]"));	//true
        System.out.println(s.matches("[A-Z]"));	//false
        System.out.println(s.matches("[1-9]"));	//false
        String s1 = "1";
        System.out.println(s1.matches("\\d"));  //true
        System.out.println(s1.matches("\\D"));  //false

注意,在 java 中, “ \ ” 是转义的意思 ,因此如果要使用带 “ \ ” 的符号,要使用两个 “ \ ”

        String s2 = "_";
        System.out.println(s2.matches("\\w"));  //true
        System.out.println(s2.matches("\\W"));  //false
        String s3 = "好";
        System.out.println(s3.matches("[\\u4e00-\\u9fa5]"));    //true
        System.out.println(s1.matches("."));    //true
        System.out.println(s2.matches("."));    //true
        System.out.println(s3.matches("."));    //true

以上的正则表达式只能验证一个字符,如果输入的字符串长度大于 1 ,就会一直返回 false

        String s4 = "abcdef";   //6 个字母
        //判断字符串中是否有且仅有 5 个连续字符并且是字母
        System.out.println(s4.matches("[a-z]{5}")); //false
        //判断字符串中是否有 0 个或者 多个字母
        System.out.println(s4.matches("[a-z]{0,}")); //true
        //判断字符串中是否有 0 个或者 多个字母
        System.out.println(s4.matches("[a-z]*")); //true

混合使用

		String str = "hello java world 2021 你好";
		//检查字符串中有没有 java
		//任意开头,任意结尾,中间匹配 java
        System.out.println(str.matches(".*java.*"));    //true
        //检查字符串中有没有数字
        //任意开头,任意结尾,中间匹配1个或多个数字
        System.out.println(str.matches(".*\\d+.*"));	//true
        //检查字符串中有没有汉字
        //任意开头,任意结尾,中间匹配1个或多个汉字
        System.out.println(str.matches(".*[\\u4e00-\\u9fa5]+.*"));	//true

当然,综合使用还有很多,可以弄各种组合,要灵活运用

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值