大家好,欢迎来到IT知识分享网。
作为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️⃣ 邮箱验证
String emailRegex = "^[\\w.-]+@[\\w-]+(\\.[\\w-]+)+$"; System.out.println("".matches(emailRegex)); // true
2️⃣ 手机号验证(11位)
String phoneRegex = "^1[3-9]\\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("总价:¥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()预编译
- 边界验证:使用^和$确保完整匹配
- 可读性优先:复杂正则要添加注释或拆分
六、调试工具推荐
- Regex101 在线测试工具
- IntelliJ IDEA 内置正则检查器
- RegExr 可视化调试
掌握正则表达式后,你会发现处理文本数据变得游刃有余。建议从简单模式开始练习,逐步挑战复杂场景。遇到问题记得多查文档,祝你在Java学习路上越走越顺!
下期预告:《Java正则表达式进阶:分组捕获与性能优化》
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/172363.html