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日
五、避坑指南
特殊字符要转义:遇到
$
,(
,)
,+
等字符时使用\\
转义注意贪婪模式:
.*
会匹配尽可能长的内容,使用.*?
进行非贪婪匹配预编译提升性能:多次使用的正则表达式应使用
Pattern.compile()
预编译边界验证:使用
^
和$
确保完整匹配可读性优先:复杂正则要添加注释或拆分