java如何使用正则
使用正则表达式的基本步骤
在Java中使用正则表达式需要依赖java.util.regex包,主要涉及Pattern和Matcher两个类。以下是基本使用方法:
创建正则表达式模式对象
Pattern pattern = Pattern.compile("正则表达式");
创建匹配器对象
Matcher matcher = pattern.matcher("要匹配的字符串");
执行匹配操作
boolean matches = matcher.matches(); // 全匹配
boolean find = matcher.find(); // 查找子串
常用正则表达式方法
字符串类直接匹配
String str = "example";
boolean isMatch = str.matches("ex.*"); // 返回true
分割字符串

String[] parts = "a,b,c".split(",");
替换操作
String result = "abc123".replaceAll("\\d", "X"); // 替换所有数字为X
正则表达式语法示例
匹配数字
Pattern.compile("\\d+"); // 一个或多个数字
匹配邮箱
Pattern.compile("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}");
分组捕获

Pattern p = Pattern.compile("(\\d{3})-(\\d{4})");
Matcher m = p.matcher("123-4567");
if (m.find()) {
System.out.println(m.group(1)); // 输出123
System.out.println(m.group(2)); // 输出4567
}
性能优化建议
预编译正则表达式 对于需要多次使用的正则表达式,应该预编译并缓存Pattern对象:
private static final Pattern EMAIL_PATTERN = Pattern.compile("...");
避免过度使用. 尽量使用更精确的匹配模式,如使用\d+代替.来匹配数字。
常见问题处理
特殊字符转义 在Java字符串中需要使用双反斜杠表示正则中的单反斜杠:
Pattern.compile("\\$\\d+"); // 匹配$后跟数字
贪婪与懒惰匹配 默认是贪婪匹配,添加?变为懒惰匹配:
Pattern.compile("a.*?b"); // 匹配最短的a...b






