1. 基本概念:
正则表达式是由字符和操作符构成的字符串,用于描述文本模式。例如,表达式 \d{3}-\d{2}-\d{4} 可以匹配美国的社会安全号码。
2. 常用字符类:
- \d: 匹配任意数字(0-9)。
- \D: 匹配任意非数字字符。
- \w: 匹配任意字母、数字或下划线。
- \W: 匹配任意非字母、数字或下划线字符。
- \s: 匹配任意空白字符。
- \S: 匹配任意非空白字符。
3. 量词:
- *: 匹配前面的元素零次或多次。
- +: 匹配前面的元素一次或多次。
- ?: 匹配前面的元素零次或一次。
- {n}: 匹配前面的元素恰好 n 次。
- {n,}: 匹配前面的元素至少 n 次。
- {n,m}: 匹配前面的元素至少 n 次但不超过 m 次。
4. 字符和字符类:
- .: 匹配任意字符(除了换行符 \n)。
- [abc]: 匹配 a、b 或 c 中的任意一个字符。
- [^abc]: 匹配除了 a、b 和 c 以外的任意字符。
5. 边界匹配:
- ^: 匹配字符串的开始。
- $: 匹配字符串的结束。
- \b: 匹配单词边界。
- \B: 匹配非单词边界。
6. 分组和引用:
- (...): 用于创建一个捕获组。
- \1, \2, ...: 用于在正则表达式中引用捕获组。
7. 示例代码:
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String text = "The phone number is 123-45-6789.";
// 匹配美国社会安全号码
String pattern = "\\d{3}-\\d{2}-\\d{4}";
Pattern r = Pattern.compile(pattern);
Matcher matcher = r.matcher(text);
if (matcher.find()) {
System.out.println("Found: " + matcher.group(0));
} else {
System.out.println("Not Found");
}
}
}
这只是 Java 正则表达式的入门,正则表达式的语法非常灵活,可以满足多种匹配需求。深入学习正则表达式可以提高文本处理的效率。
转载请注明出处:http://www.zyzy.cn/article/detail/452/Java