Java正则匹配符号
正则表达式是一种强大的模式匹配工具,可以用于在字符串中查找、替换和提取特定的内容。Java提供了丰富的正则匹配符号,可以满足不同场景下的需求。本文将介绍Java中常用的正则匹配符号,并通过代码示例演示其用法。
1. 常用的正则匹配符号
1.1 字符匹配符号
.
:匹配除换行符以外的任意字符。\w
:匹配任意字母、数字或下划线。\d
:匹配任意数字。\s
:匹配任意空白字符,包括空格、制表符、换行符等。[]
:匹配方括号中的任意一个字符。
1.2 重复匹配符号
*
:匹配前面的字符零次或多次。+
:匹配前面的字符一次或多次。?
:匹配前面的字符零次或一次。{n}
:匹配前面的字符恰好n次。{n,}
:匹配前面的字符至少n次。{n,m}
:匹配前面的字符至少n次,最多m次。
1.3 边界匹配符号
^
:匹配行的开头。$
:匹配行的结尾。\b
:匹配单词的边界。
1.4 分组匹配符号
()
:将括号内的内容作为一个子表达式。|
:匹配两个或多个表达式之一。
2. Java中的正则匹配
在Java中,可以使用java.util.regex
包中的Pattern
和Matcher
类来进行正则匹配。
import java.util.regex.*;
public class RegexDemo {
public static void main(String[] args) {
String input = "Hello, World!";
String pattern = "Hello.*";
// 创建Pattern对象
Pattern p = Pattern.compile(pattern);
// 创建Matcher对象
Matcher m = p.matcher(input);
// 进行匹配
if (m.matches()) {
System.out.println("匹配成功");
} else {
System.out.println("匹配失败");
}
}
}
运行以上代码,输出结果为匹配成功
。代码中使用了Pattern.compile()
方法编译正则表达式,并使用Matcher.matches()
方法进行匹配。
3. 正则匹配的常见应用场景
3.1 邮箱格式验证
正则表达式可以很方便地验证邮箱的格式是否符合要求。
import java.util.regex.*;
public class EmailValidator {
public static boolean validate(String email) {
String pattern = "^[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]{2,})+$";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(email);
return m.matches();
}
public static void main(String[] args) {
String email = "example@example.com";
if (validate(email)) {
System.out.println("邮箱格式正确");
} else {
System.out.println("邮箱格式错误");
}
}
}
3.2 提取URL中的域名
可以使用正则表达式从URL中提取域名部分。
import java.util.regex.*;
public class DomainExtractor {
public static String extract(String url) {
String pattern = "(https?://)?([\\w\\.]+)[/:]";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(url);
if (m.find()) {
return m.group(2);
} else {
return "";
}
}
public static void main(String[] args) {
String url = "
String domain = extract(url);
System.out.println("域名:" + domain);
}
}
3.3 替换敏感词
使用正则表达式可以方便地替换文本中的敏感词。
import java.util.regex.*;
public class WordFilter {
public static String filter(String text) {
String pattern = "(?i)敏感