📜  正则表达式 java (1)

📅  最后修改于: 2023-12-03 15:40:38.270000             🧑  作者: Mango

正则表达式 Java

简介

正则表达式是一种用于匹配字符串模式的工具,它在 Java 中通过 java.util.regex 包实现。使用正则表达式可以轻松地搜索、替换和解析文本。本文将介绍 Java 中常用的正则表达式语法,并提供一些示例来演示其用法。

正则表达式语法

以下是 Java 中常用的正则表达式语法:

  • . 匹配任何字符
  • [] 匹配指定的字符集合
  • [^] 不匹配指定的字符集合
  • ? 匹配前面的字符 0 或 1 次
  • * 匹配前面的字符 0 或多次
  • + 匹配前面的字符 1 或多次
  • {n} 匹配前面的字符恰好 n 次
  • {n,} 匹配前面的字符至少 n 次
  • {n,m} 匹配前面的字符 n 到 m 次
  • () 捕获匹配的子串,可以通过 $1、$2、$3 等来引用
  • (?:) 不捕获匹配的子串
  • | 匹配两个任意的分支
  • \ 转义字符,用于匹配特殊字符
示例
匹配数字
String str = "This is a string with 12345";
String pattern = "\\d+";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);

if (m.find( )) {
   System.out.println("Found value: " + m.group(0));
} else {
   System.out.println("No match");
}

输出结果:

Found value: 12345
匹配日期
String str = "Today is 2022-03-06";
String pattern = "\\d{4}-\\d{2}-\\d{2}";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);

if (m.find( )) {
   System.out.println("Found value: " + m.group(0));
} else {
   System.out.println("No match");
}

输出结果:

Found value: 2022-03-06
匹配邮箱地址
String str = "My email address is example123@test.com";
String pattern = "\\w+@[a-z]+\\.[a-z]{2,3}";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);

if (m.find( )) {
   System.out.println("Found value: " + m.group(0));
} else {
   System.out.println("No match");
}

输出结果:

Found value: example123@test.com
总结

Java 中的正则表达式在搜索、替换和解析字符串等方面非常有用。掌握正则表达式的语法和用法可以提高程序员编写高效代码的能力。本文介绍了 Java 中常用的正则表达式语法,并提供了一些示例来演示其用法。在实际工作中,根据需求选择正确的正则表达式,可以为开发带来极大的便利。