插件窝 干货文章 Java正则表达式提取指定文本内容完整指南与实例教程

Java正则表达式提取指定文本内容完整指南与实例教程

Java正则表达式 文本提取 Pattern Matcher 字符串处理    来源:    2025-08-22

Java正则表达式提取文本的完整指南

正则表达式是Java中处理文本匹配和提取的强大工具。本文将详细讲解如何使用Java正则表达式提取指定文本内容,包含基础语法、核心类和实际应用示例。

1. 正则表达式基础

正则表达式通过特定模式匹配字符串,常用元字符包括:

  • . - 匹配任意字符(除换行符)
  • \d - 匹配数字
  • [a-z] - 匹配小写字母
  • * - 匹配0次或多次
  • + - 匹配1次或多次
  • () - 定义捕获组

2. 核心Java类

Java通过java.util.regex包提供正则支持:

  • Pattern类:编译正则表达式模式
  • Matcher类:执行匹配操作并提取结果

3. 提取文本实战示例

示例1:提取邮箱地址

String text = "联系邮箱:admin@example.com, 备用邮箱:support@test.org";
Pattern pattern = Pattern.compile("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}");
Matcher matcher = pattern.matcher(text);

while (matcher.find()) {
    System.out.println("找到邮箱: " + matcher.group());
}

示例2:使用捕获组提取特定内容

String html = "
姓名:张三
年龄:25
"; Pattern pattern = Pattern.compile("姓名:(.*?)
.*?年龄:(.*?)
"); Matcher matcher = pattern.matcher(html); if (matcher.find()) { String name = matcher.group(1); // 第一个捕获组 String age = matcher.group(2); // 第二个捕获组 System.out.println("姓名: " + name + ", 年龄: " + age); }

示例3:提取手机号码

String text = "联系电话:13800138000, 备用:13912345678";
Pattern pattern = Pattern.compile("1[3-9]\\d{9}");
Matcher matcher = pattern.matcher(text);

while (matcher.find()) {
    System.out.println("手机号: " + matcher.group());
}

4. 最佳实践与注意事项

5. 常见问题解决

问题:匹配不到预期内容?

解决方案:

  1. 检查正则表达式语法是否正确
  2. 使用Matcher.find()而非matches()进行部分匹配
  3. 添加Pattern.DOTALL标志使.匹配包括换行符的所有字符

通过掌握这些技巧,您将能够高效使用Java正则表达式提取各种文本内容,大幅提升文本处理效率。

推荐文章

热门文章