java如何实现正则表达式
正则表达式基础语法
Java中正则表达式通过java.util.regex包实现,主要包含Pattern和Matcher类。基础语法与其他语言类似:
.匹配任意字符\d匹配数字\w匹配字母、数字或下划线[]字符集合*零次或多次+一次或多次?零次或一次
创建Pattern对象
使用Pattern.compile()方法编译正则表达式:
Pattern pattern = Pattern.compile("\\d+"); // 匹配一个或多个数字
使用Matcher匹配
通过matcher()方法创建匹配器对象:
Matcher matcher = pattern.matcher("123abc");
boolean isMatch = matcher.find(); // 返回true
常用匹配方法
matches():整个字符串完全匹配find():查找子串匹配group():获取匹配内容if(matcher.matches()) { System.out.println(matcher.group()); }
分组捕获
使用()定义捕获组:
Pattern p = Pattern.compile("(\\d+)-(\\w+)");
Matcher m = p.matcher("123-abc");
if(m.find()) {
System.out.println(m.group(1)); // 输出"123"
System.out.println(m.group(2)); // 输出"abc"
}
字符串替换
通过replaceAll()方法实现:
String result = "a1b2c3".replaceAll("\\d", "X"); // 输出"aXbXcX"
常用正则示例
-
邮箱验证:
Pattern emailPattern = Pattern.compile("^[\\w.-]+@[\\w.-]+\\.[a-z]{2,}$"); -
手机号验证:
Pattern phonePattern = Pattern.compile("^1[3-9]\\d{9}$"); -
提取HTML标签内容:

Pattern htmlPattern = Pattern.compile("<title>(.*?)</title>");
性能优化建议
- 预编译常用正则表达式为静态
Pattern对象 - 避免过度使用贪婪匹配
.* - 复杂正则表达式可拆分为多个简单匹配






