Java正则匹配代码
引言
在编程中,我们经常需要对字符串进行匹配、替换和提取操作。Java提供了正则表达式的支持,能够方便地进行字符串的处理和操作。本文将介绍Java正则匹配的基本概念、常用语法和实例,帮助读者快速掌握Java中正则表达式的使用。
正则表达式的基本概念
正则表达式(Regular Expression)是一种用来描述字符串模式的表达式。它由字符和特殊字符组成,可以用来匹配、查找和替换字符串。在Java中,正则表达式由java.util.regex包提供支持。
在正则表达式中,常见的特殊字符有:
- \d: 匹配数字字符。等价于[0-9]。
- \w: 匹配字母、数字、下划线。等价于[A-Za-z0-9_]。
- \s: 匹配空白字符,包括空格、制表符、换行符等。
- . : 匹配除换行符以外的任意字符。
- ^ : 匹配字符串的开头。
- $ : 匹配字符串的结尾。
-
- : 匹配前面的字符0次或多次。
-
- : 匹配前面的字符1次或多次。
- ? : 匹配前面的字符0次或1次。
Java中的正则表达式语法
Java中的正则表达式语法基本上和其他语言的正则表达式语法相似,但也有一些差异。下面是一些常用的正则表达式语法:
语法 | 描述 |
---|---|
[] | 匹配括号内的任意一个字符 |
[^] | 匹配除了括号内的字符以外的字符 |
[a-z] | 匹配a到z之间的任意一个字符 |
[^a-z] | 匹配除了a到z之间的字符以外的字符 |
\d | 匹配数字字符 |
\D | 匹配非数字字符 |
\w | 匹配字母、数字、下划线 |
\W | 匹配非字母、数字、下划线 |
\s | 匹配空白字符 |
\S | 匹配非空白字符 |
. | 匹配任意字符 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
* | 匹配前面的字符0次或多次 |
+ | 匹配前面的字符1次或多次 |
? | 匹配前面的字符0次或1次 |
{n} | 匹配前面的字符恰好n次 |
{n,} | 匹配前面的字符至少n次 |
{n,m} | 匹配前面的字符至少n次,最多m次 |
| | 匹配两个表达式之一 |
( ) | 分组表达式 |
Java中的正则表达式实例
下面是一些常见的Java正则表达式实例:
- 匹配邮箱地址:
String regex = "\\w+@\\w+(\\.\\w+)+";
String email = "example@example.com";
boolean isMatch = email.matches(regex);
- 替换字符串中的特定字符:
String regex = "\\d";
String str = "abc123def456";
String replacedStr = str.replaceAll(regex, "*");
- 提取字符串中的数字:
String regex = "\\d+";
String str = "abc123def456";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
- 判断字符串是否为手机号码:
String regex = "1[3456789]\\d{9}";
String phoneNumber = "13812345678";
boolean isMatch = phoneNumber.matches(regex);
正则表达式的关系图
使用mermaid语法中的erDiagram标识正则表达式的关系图,如下所示:
erDiagram
CUSTOMER ||--o{ ORDER :