【java正则表达式语法大全】在Java编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛用于字符串匹配、查找、替换和分割等操作。Java通过`java.util.regex`包提供了对正则表达式的支持,主要包括`Pattern`和`Matcher`两个类。以下是对Java正则表达式常用语法的总结,结合表格形式进行展示,便于理解和查阅。
一、基本语法说明
符号 | 含义 | 示例 | 说明 | ||
`.` | 匹配任意单个字符(除换行符外) | `a.c` | 匹配 "abc", "aac" 等 | ||
`^` | 匹配字符串的开头 | `^hello` | 匹配以 "hello" 开头的字符串 | ||
`$` | 匹配字符串的结尾 | `world$` | 匹配以 "world" 结尾的字符串 | ||
`` | 前一个字符出现0次或多次 | `a` | 匹配 "", "a", "aa", "aaa" 等 | ||
`+` | 前一个字符出现1次或多次 | `a+` | 匹配 "a", "aa", "aaa" 等 | ||
`?` | 前一个字符出现0次或1次 | `a?` | 匹配 "" 或 "a" | ||
`{n}` | 前一个字符恰好出现n次 | `a{3}` | 匹配 "aaa" | ||
`{n,}` | 前一个字符至少出现n次 | `a{2,}` | 匹配 "aa", "aaa", "aaaa" 等 | ||
`{n,m}` | 前一个字符出现n到m次之间 | `a{2,4}` | 匹配 "aa", "aaa", "aaaa" | ||
`[]` | 字符集合,匹配其中任意一个字符 | `[abc]` | 匹配 "a", "b", "c" | ||
`[^]` | 匹配不在集合中的字符 | `[^abc]` | 匹配除了 "a", "b", "c" 外的字符 | ||
` | ` | 或,匹配多个模式中的任意一个 | `cat | dog` | 匹配 "cat" 或 "dog" |
`()` | 分组,将多个元素视为一个整体 | `(ab)+` | 匹配 "ab", "abab", "ababab" 等 | ||
`\d` | 匹配数字字符(等价于 [0-9]) | `\d{3}` | 匹配三个数字,如 "123" | ||
`\D` | 匹配非数字字符 | `\D+` | 匹配非数字的连续字符 | ||
`\s` | 匹配空白字符(空格、制表符、换行等) | `\s+` | 匹配多个空白字符 | ||
`\S` | 匹配非空白字符 | `\S+` | 匹配非空白的连续字符 | ||
`\w` | 匹配字母、数字和下划线(等价于 [a-zA-Z0-9_]) | `\w+` | 匹配单词字符 | ||
`\W` | 匹配非单词字符 | `\W` | 匹配非字母、数字、下划线的字符 |
二、常见用法示例
1. 验证邮箱格式
```java
String emailRegex = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b";
```
2. 提取电话号码
```java
String phoneRegex = "\\d{3}-\\d{3}-\\d{4}";
```
3. 替换所有数字为X
```java
String result = input.replaceAll("\\d", "X");
```
4. 分割字符串
```java
String[] parts = input.split("\\s+");
```
5. 检查是否包含特定单词
```java
boolean contains = input.matches(".apple.");
```
三、注意事项
- 正则表达式在Java中使用时需要转义反斜杠(`\`),因此实际写法应为 `\\d`。
- 使用 `Pattern` 和 `Matcher` 类可以实现更复杂的匹配逻辑。
- 正则表达式性能较高,但过于复杂的模式可能导致效率下降,需合理设计。
四、总结
Java正则表达式是处理字符串的强大工具,掌握其语法有助于提升代码的灵活性和可维护性。本文从基础符号、常见用法及注意事项等方面进行了系统整理,适合初学者快速入门和进阶者查漏补缺。在实际开发中,建议结合具体需求选择合适的正则表达式,并注意测试与优化。