【入门必看】正规式(正则表达式)超全解析!从零到精通,一篇搞定!


🌟 一、什么是正规式?

正规式(Regular Expression,简称Regex)是一种用数学公式描述字符串规则的工具!
👉 举个栗子

  • 所有由 a 组成的字符串(如 a, aa, aaa…)→ 正规式:a*
  • 所有以 a 开头、b 结尾的字符串(如 ab, aab, abb…)→ 正规式:a(a|b)*b

核心作用:在文本处理、编译器设计、数据验证中,快速匹配、搜索或过滤字符串! 🔍


🛠️ 二、正规式的3大核心操作符

正规式的灵魂是这3个操作符,一定要记牢!

操作符 含义 例子 匹配结果
| 选择(或逻辑) a|b ab
拼接 连接(顺序组合) ab ab
* 闭包(重复任意次) a* 空、aaaaaa

⚠️ 优先级:闭包(*) > 连接 > 选择(|),用()调整顺序!
👉 比如:(a|b)c 匹配 acbc,而 a|bc 匹配 abc


📚 三、必会语法规则与经典案例

1️⃣ 基础规则
  • a:仅匹配字符 a
  • a*:匹配空串或任意个 a(包括 a, aa…)
  • a+:至少1个 a(等价于 aa*
  • a?:0或1个 a(等价于 a|ε,ε表示空)
2️⃣ 组合操作实战
  • 案例1:所有以 a 开头、b 结尾的字符串
    🔧 正规式:a(a|b)*b
    ✅ 匹配:ab, aab, abb, aaabbb
    ❌ 不匹配:ba, aba, a

  • 案例2:由 01 组成且不以 00 结尾的字符串
    🔧 正规式:(0|1)*(01|1|ε)
    ✅ 匹配:1, 01, 1101
    ❌ 不匹配:00, 100, 1100


🆚 四、正规式 vs 编程中的正则表达式

特性 正规式(理论) 编程中的正则表达式(如Python re
核心操作 仅 ` , *`, 拼接
用途 描述字符串集合的数学定义 文本搜索、替换、复杂模式匹配
灵活性 简单严谨 功能强大,支持贪婪匹配、回溯等

👉 一句话总结:理论正规式是基础,编程中的正则表达式是它的“超级升级版”! 🚀


🔥 五、实战:手把手写正规式

需求:所有由 ab 组成,且包含子串 ab 的字符串。

拆解步骤

  1. 包含子串 ab → 中间必须有 ab
  2. ab 前后可以是任意字符 → 用 (a|b)* 表示前后部分;
  3. 合并结果:(a|b)*ab(a|b)*

✅ 测试用例:ab, aab, bab, aaabbb
❌ 不匹配:a, b, ba, aba(不含连续ab


🚀 六、正规式的应用场景

  1. 数据验证:邮箱、手机号格式校验。
    📧 邮箱正规式:^\w+@\w+\.[a-z]+$
  2. 文本搜索:在代码中查找特定模式的字符串。
  3. 编译器设计:识别编程语言中的关键字、运算符。
  4. 日志分析:提取符合规则的日志信息(如错误日志)。

💡 七、学习建议

  1. 先理解理论:掌握闭包、选择、连接的组合逻辑。
  2. 多写多练:从简单需求入手,逐步增加复杂度。
  3. 工具辅助:用在线测试工具(如 Regex101)验证正规式。
  4. 查漏补缺:警惕常见错误,比如过度使用 * 导致匹配空串!

🎉 总结

正规式是字符串处理的“瑞士军刀”🔪,3大操作符(|, *, 拼接)打天下!
记住:分解问题 → 组合操作符 → 测试验证,小白也能变大神! 🚀

下方留言区:你用过最复杂的正规式是什么?来挑战一下吧! 💬👇

声明
本文图片标题素材来自 Freepik,使用遵循其免费许可协议。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐