正则表达式
- 数据验证
用途:验证用户输入是否符合特定格式(如邮箱、手机号、日期等)。
示例:验证一个字符串是否为合法的邮箱地址。
String email = "user@example.com";
String regex = "[1]+(?:\.[a-zA-Z0-9_+&-]+)@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,7}$";
boolean isValid = email.matches(regex); // 返回 true 或 false
2. 字符串查找与提取
用途:从文本中查找符合特定模式的子串(如提取日志中的 IP 地址)。
示例:从字符串中提取所有数字。
Pattern pattern = Pattern.compile("\d+");
Matcher matcher = pattern.matcher("订单号:12345,数量:20");
while (matcher.find()) {
System.out.println("找到数字: " + matcher.group()); // 输出 12345 和 20
}
3. 字符串替换
用途:替换符合模式的文本(如敏感词过滤、格式化文本)。
示例:将文本中的 "Java" 替换为 "Python"。
String text = "Java 是最好的编程语言,Java 很流行。";
String replaced = text.replaceAll("Java", "Python");
// 结果:"Python 是最好的编程语言,Python 很流行。"
4. 字符串分割
用途:按特定规则分割字符串(如 CSV 文件解析)。
示例:用逗号或空格分割字符串。
String data = "apple,banana orange,grape";
String[] parts = data.split("[, ]+"); // 分割符为逗号或空格
// 结果:["apple", "banana", "orange", "grape"]
5. 高级文本处理
用途:处理复杂文本结构(如 HTML/XML 解析、日志分析)。
示例:提取 HTML 中的链接。
String html = "链接";
Pattern linkPattern = Pattern.compile("href='"['"]");
Matcher linkMatcher = linkPattern.matcher(html);
if (linkMatcher.find()) {
System.out.println("链接地址: " + linkMatcher.group(1)); // 输出 https://example.com
}
a-zA-Z0-9_+&*- ↩︎