正则表达式
正则表达式(Regular Expression,简称 Regex 或 RegExp)是一种用于描述字符串模式的工具,广泛应用于字符串的匹配、搜索、替换和验证等操作。它通过特定的语法规则来匹配字符串中的特定模式。
在 Java 中,正则表达式是通过 java.util.regex 包中的 Pattern 和 Matcher 类来实现的。
✅ 正则表达式的基本构成
1. 字符匹配
.: 匹配任意一个字符(除了换行符)\d: 匹配一个数字字符,等价于[0-9]\D: 匹配非数字字符,等价于[^0-9]\w: 匹配一个字母、数字或下划线字符,等价于[a-zA-Z0-9_]\W: 匹配非字母、数字或下划线字符,等价于[^a-zA-Z0-9_]\s: 匹配一个空白字符(如空格、制表符、换行符等)\S: 匹配一个非空白字符\b: 匹配单词边界\B: 匹配非单词边界
2. 量词
*: 匹配前面的字符零次或多次+: 匹配前面的字符一次或多次?: 匹配前面的字符零次或一次{n}: 匹配前面字符恰好 n 次{n,}: 匹配前面字符至少 n 次{n,m}: 匹配前面字符至少 n 次,至多 m 次
3. 字符集与范围
[abc]: 匹配字符a、b或c中的任意一个字符[^abc]: 匹配除a、b、c以外的任意字符[a-z]: 匹配小写字母中的任意一个字符[A-Z]: 匹配大写字母中的任意一个字符[0-9]: 匹配数字中的任意一个字符
4. 分组与选择
(): 用于分组匹配|: 表示“或”操作,匹配左边或右边的表达式
5. 其他特殊字符
\: 转义字符,用于转义特殊字符(如.、*、+等)^: 匹配输入的开始位置$: 匹配输入的结束位置
✅ Java 中正则表达式的应用
1. 使用 Pattern 类
Pattern 类代表了一个正则表达式,并提供了许多方法来对字符串进行匹配操作。它是正则表达式操作的核心。
2. 使用 Matcher 类
Matcher 类用于执行与正则表达式相关的匹配操作,如查找、替换、验证等。
3. 常用方法
| 方法 | 说明 |
|---|---|
Pattern.compile(String regex) |
编译一个正则表达式,返回一个 Pattern 对象 |
matcher.find() |
查找匹配的字符串 |
matcher.group() |
获取匹配的子字符串 |
matcher.matches() |
检查整个字符串是否与正则表达式匹配 |
matcher.replaceAll(String replacement) |
替换所有匹配的部分 |
✅ 示例:正则表达式的使用
1. 判断字符串是否匹配正则表达式
1 | |
- 解释:这个正则表达式检查是否为一个有效的社会安全号码格式(例如:
123-45-6789)。^表示字符串开始,\d{3}表示三位数字,-匹配一个连字符,\d{2}表示两位数字,最后的\d{4}表示四位数字,$表示字符串结束。
2. 使用 Pattern 和 Matcher 查找匹配内容
1 | |
- 解释:这个正则表达式匹配字符串中的每个单词(由字母、数字或下划线组成)。
\\b是单词边界,\\w+匹配一个或多个字母、数字或下划线。
3. 替换匹配的部分
1 | |
- 解释:在这个示例中,正则表达式
\\d+匹配字符串中的所有数字,并将其替换为"many"。
✅ 总结
正则表达式是一个强大且灵活的工具,在处理字符串匹配、替换和验证时非常有用。Java 提供了 Pattern 和 Matcher 类来实现正则表达式的匹配操作。通过掌握常见的正则语法和 Java 中的操作方法,你可以更加高效地处理字符串相关的任务。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Firefly!








