简单易懂的Java中常用正则标记,循序渐进,含代码

常用正则标记:

1、字符匹配【数量:单个】

  • 任意字符,表示由任意字符组成;
  • “ \\ ” 匹配 “ \ ”
  • “ \n ” 匹配换行
  • “ \t ”  匹配制表符
public class RegexDemo {
    public static void main(String[] args) {
        String str = "a";
        String regex = "a";
        System.out.println(str.matches(regex));
    }
}

2、字符集匹配【数量:单个】(给出一个集合,从集合中任意匹配一个字符)

  • [abc] 表示可能匹配a、b、c中的任意一个字符
  • [^abc] 表示所匹配的字符不是a、b、c中任意一个
  • [a-zA-Z] 表示由任意字母组成,不区分大小写
  • [0-9] 表示由任意数字组成
public class RegexDemo {
    public static void main(String[] args) {

        iMatch("a","[abc]");
        iMatch("x","[^abc]");
        iMatch("Y","[a-zA-Z]");
        iMatch("9","[0-9]");

    }
    private static void iMatch(String str, String regex){
        System.out.println(str.matches(regex));
    }

}

3、简化的字符集匹配【数量:单个】

  • “ . ” 表示任意字符
  • “ \d ” 等价于 “ [0-9] ”
  • “ \D ” 等价于 “ [^0-9] ”
  • “ \s ” 匹配任意空格,可能是空格、换行、制表符
  • “ \S ” 匹配任意非空格
  • “ \w ” 匹配字母、数字、下划线,等价于 “ [a-zA-Z_0-9] ”
  • “ \W ” 匹配非字母、非数字、非下划线,等价于 “ [^a-zA-Z_0-9] ”
public class RegexDemo {
    public static void main(String[] args) {

        // 匹配任意数据
        iMatch("a",".");

        // 匹配任意空格数据,可能是空格、换行、制表符
        iMatch(" ","\\s");
        iMatch("\n","\\s");
        iMatch("\t","\\s");

        // 匹配任意非空格数据
        iMatch("%","\\S");

        // 匹配字母、数字、下划线
        iMatch("Q","\\w");
        iMatch("7","\\w");
        iMatch("_","\\w");

        // 匹配非字母、非数字、非下划线
        iMatch("*","\\W");
    }

    private static void iMatch(String str, String regex){
        System.out.println(str.matches(regex));
    }
}

4、边界匹配

  • “ ^ ” 表示边界匹配开始
  • “ $ ” 表示边界匹配结束

(重点)5、数量表达,默认情况下,只有添加了数量表达才可以匹配多个字符

  • “ 表达式? ” 表示该正则表达式可以出现0次或者1次
  • “ 表达式* ” 表示该正则表达式可以出现任意次数(包含0次)
  • “ 表达式+ ” 表示该正则表达式至少出现1次
  • “ 表达式{n} ” 表示该正则表达式正好出现n次
  • “ 表达式{n,} ” 表示该正则表达式至少出现n次
  • “ 表达式{n,m} ” 表示该正则表达式出现次数在{n,m}范围之内
public class RegexDemo {
    public static void main(String[] args) {

        // 表达式出现0次或者1次,true、true
        iMatch("a","\\w?");
        iMatch("","\\w?");

        // 表达式出现任意次数,true
        iMatch("JavaRegexDemo","\\w*");

        // 表达式出现至少1次,true、false
        iMatch("JavaRegexDemo","\\w+");
        iMatch(" abv","\\w+");

        // 表达式正好出现n次,true、false
        iMatch("110","\\d{3}");
        iMatch("1100","\\d{3}");

        // 表达式至少出现n次,false、true、true
        iMatch("11","\\d{3,}");
        iMatch("110","\\d{3,}");
        iMatch("1100","\\d{3,}");

        // 表达式出现n~m次,true
        iMatch("1100","\\d{2,5}");

    }
    private static void iMatch(String str, String regex){
        System.out.println(str.matches(regex));
    }
}

6、逻辑表达式,用于连接多个正则表达式

  • 表达式X表达式Y:表示表达式X后紧跟着表达式Y
  • 表达式X|表达式Y:有一个表达式满足即可
  • (表达式):为表达式设置一个整体描述,可以设置数量单位

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值