Java中Pattern.compile函数的用法

Java正则表达式快速入门:让文本处理更高效

作为Java开发者,掌握正则表达式能让你轻松应对%的文本处理需求。本文通过实战案例带你快速入门,建议收藏备用!


一、正则表达式是什么?

正则表达式(Regular Expression)是处理字符串的利器,通过特定规则实现:
? 格式验证(邮箱、手机号)
? 文本搜索替换
? 数据提取与分割


二、核心语法速查表

符号

作用

示例

.

任意字符(除换行)

a.c → abc

\d

数字字符()

\d{3} →

\w

单词字符(字母/数字/下划线)

\w+ → Hello_1

^

字符串开头

^Java

$

字符串结尾

end$

*

0次或多次

a*b → b/aab

+

1次或多次

a+b → ab/aaab

?

0次或1次

colou?r → color/colour

[]

字符集合

[aeiou] → 元音字母


三、Java实现四步走

import java.util.regex.*;

public class RegexDemo {
    public static void main(String[] args) {
        // 1. 编译正则表达式
        Pattern pattern = Pattern.compile("\\d{3}-\\d{4}");
        
        // 2. 创建匹配器
        Matcher matcher = pattern.matcher("邮编:");
        
        // 3. 执行匹配
        if(matcher.find()) {
            // 4. 获取结果
            System.out.println("找到邮编:" + matcher.group());
        }
    }
}

四、六大高频应用场景

1?? 邮箱验证

String emailRegex = "^[\\w.-]+@[\\w-]+(\\.[\\w-]+)+$";
System.out.println("test@example.com".matches(emailRegex)); // true

2?? 手机号验证(位)

String phoneRegex = "^1[]\\d{9}$";
System.out.println("".matches(phoneRegex)); // true

3?? 敏感词过滤

String content = "这个APP非常给力!";
String result = content.replaceAll("(?i)app", "***");
System.out.println(result); // 这个***非常给力!

4?? 提取金额

Pattern moneyPattern = Pattern.compile("¥(\\d+\\.?\\d*)");
Matcher m = moneyPattern.matcher("总价:¥元");
if(m.find()) {
    System.out.println("金额:" + m.group(1)); // 
}

5?? 分割字符串

String[] words = "Java,Python;C++|JavaScript".split("[,;|]");
// 结果:[Java, Python, C++, JavaScript]

6?? 日期格式转换

String dateStr = "".replaceAll("(\\d{4})-(\\d{2})-(\\d{2})", "$1年$2月$3日");
// 结果:年月日

五、避坑指南

  1. 特殊字符要转义:遇到$, (, ), +等字符时使用\\转义
  2. 注意贪婪模式:.*会匹配尽可能长的内容,使用.*?进行非贪婪匹配
  3. 预编译提升性能:多次使用的正则表达式应使用Pattern.compile()预编译
  4. 边界验证:使用^和$确保完整匹配
  5. 可读性优先:复杂正则要添加注释或拆分

六、调试工具推荐

  • Regex101 在线测试工具
  • IntelliJ IDEA 内置正则检查器
  • RegExr 可视化调试

掌握正则表达式后,你会发现处理文本数据变得游刃有余。建议从简单模式开始练习,逐步挑战复杂场景。遇到问题记得多查文档,祝你在Java学习路上越走越顺!

下期预告:《Java正则表达式进阶:分组捕获与性能优化》

原文链接:,转发请注明来源!