Java开发

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

2025-02-15 30 0

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

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


一、正则表达式是什么?

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


二、核心语法速查表

符号作用示例
.任意字符(除换行)a.c → abc
\d数字字符(0-9)\d{3} → 123
\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("邮编:100-0011");
        
        // 3. 执行匹配
        if(matcher.find()) {
            // 4. 获取结果
            System.out.println("找到邮编:" + matcher.group());
        }
    }}

四、六大高频应用场景

1️⃣ 邮箱验证

java

复制

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

2️⃣ 手机号验证(11位)

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

3️⃣ 敏感词过滤

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

4️⃣ 提取金额

java

复制

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

5️⃣ 分割字符串

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

6️⃣ 日期格式转换

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


五、避坑指南

  1. 特殊字符要转义:遇到$, (, ), +等字符时使用\\转义

  2. 注意贪婪模式.*会匹配尽可能长的内容,使用.*?进行非贪婪匹配

  3. 预编译提升性能:多次使用的正则表达式应使用Pattern.compile()预编译

  4. 边界验证:使用^$确保完整匹配

  5. 可读性优先:复杂正则要添加注释或拆分


点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计97篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信