正则表达式完全教程:从看懂符号到写出能用的校验规则

一、原理背景

正则表达式(Regular Expression,简称 regex)是用一串「元字符」描述文本模式的微型语言。它的本质是用数学意义上的正则文法,去匹配符合某类特征的字符串:所有手机号、所有邮箱、所有以 error 开头的日志行。

你每天都在间接用它:IDE 的全局搜索(勾选正则模式)、Excel/Word 的查找替换、日志分析 grep、Python/JS 的字符串处理、Nginx 配置的 location ~ \.php$。不会正则,这些场景只能肉眼搬砖;会正则,一分钟干完一小时活。

三大背景概念:

  1. 引擎流派:正则语法大体分两族——PCRE(Perl 系,Python re、PHP、Java、Go 都属于此系)和 POSIX。日常用的都是 PCRE 系,语法基本通用;JavaScript 引擎略有差异(无反向查找)。本文以 Python/JavaScript 通用语法为准。
  2. 匹配 vs 搜索:re.match 类函数只从「开头」匹配,re.search 才在全文找;JS 的 test() 也是全文找。新手「明明写对了却匹配不到」,一半栽在这。
  3. 贪婪与懒惰:量词默认「贪婪」——.* 会一口气吃到最后一个符合条件的字符;加 ? 变「懒惰」,吃到第一个就停。这是「正则匹配多了内容」的头号原因。

学习路径建

🔒 登录后查看全文

登录后即可查看完整内容