Java 中的模式 pattern() 方法示例

javaobject oriented programmingprogramming

Java 的 java.util.regex 包提供了各种类来查找字符序列中的特定模式。此包的模式类是正则表达式的编译表示。

Pattern 类的 pattern() 方法获取并以字符串格式返回正则表达式,当前模式就是使用该字符串格式编译的。

示例 1

import java.util.regex.Pattern;
public class PatternExample {
   public static void main(String[] args) {
      String date = "12/09/2019";
      String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
      //创建一个 Pattern 对象
      Pattern pattern = Pattern.compile(regex);
      if(pattern.matcher(date).matches()) {
         System.out.println("Date is valid");
      } else {
         System.out.println("日期无效");
      }
      //检索当前模式的正则表达式
      String regularExpression = pattern.pattern();
      System.out.println("正则表达式:"+regularExpression);
   }
}

输出

日期有效
正则表达式:^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$

示例 2

public class PatternExample {
   public static void main(String[] args) {
      String input = "Hi my id is 056E1563";
      //使用组的正则表达式
      String regex = "(.*)?(\d+)";
      //创建一个 Pattern 对象
      Pattern pattern = Pattern.compile(regex);
      if(pattern.matcher(input).matches()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
      //检索当前模式的正则表达式
      String regularExpression = pattern.pattern();
      System.out.println("正则表达式:"+regularExpression);
   }
}

输出

找到匹配项
正则表达式:(.*)?(\d+)

相关文章