方法一:使用 Pattern 类(推荐)

我们使用 Pattern 类来编译正则表达式,并使用它匹配输入以生成 Matcher 实例。 此 Matcher 具有有关正则表达式匹配结果的信息。
使用示例:

  1. // [a-z]表示a~z之间的任何一个字符, {3}表示3个字符, 意思是匹配一个长度为3, 并且每个字符属于a~z的字符串
  2. Pattern p = Pattern.compile("[a-z]{3}");
  3. Matcher m1 = p.matcher("abc");
  4. System.out.println(m1.matches()); // true
  5. Matcher m2 = p.matcher("abcd");
  6. System.out.println(m2.matches()); // false

方法二:使用 String 类的 matches 方法

使用示例:

  1. // [a-z]表示a~z之间的任何一个字符, {3}表示3个字符, 意思是匹配一个长度为3, 并且每个字符属于a~z的字符串
  2. String regex = "[a-z]{3}";
  3. System.out.println("abc".matches(regex)); // true
  4. System.out.println("abcd".matches(regex)); // false

通过阅读源码发现内部调用了 Pattern 类的 _matches_ 方法,再进入发现本质与方法一一致,如果调用次数多的话方法一的性能比较高,因为方法二每次都重复调用 Pattern.compile 方法编译正则表达式。
String 类的 matches 方法源码:
image.png
Pattern 类的 matches 方法源码:
image.png

参考: https://blog.csdn.net/dnc8371/article/details/106809091 https://blog.csdn.net/javageektech/article/details/100059508