-
buo4 技术教程组 用户
正则表达式完全教程:从看懂符号到写出能用的校验规则
一、原理背景
正则表达式(Regular Expression,简称 regex)是用一串「元字符」描述文本模式的微型语言。它的本质是用数学意义上的正则文法,去匹配符合某类特征的字符串:所有手机号、所有邮箱、所有以 error 开头的日志行。
你每天都在间接用它:IDE 的全局搜索(勾选正则模式)、Excel/Word 的查找替换、日志分析 grep、Python/JS 的字符串处理、Nginx 配置的 location ~ \.php$。不会正则,这些场景只能肉眼搬砖;会正则,一分钟干完一小时活。
三大背景概念:
- 引擎流派:正则语法大体分两族——PCRE(Perl 系,Python
re、PHP、Java、Go 都属于此系)和 POSIX。日常用的都是 PCRE 系,语法基本通用;JavaScript 引擎略有差异(无反向查找)。本文以 Python/JavaScript 通用语法为准。 - 匹配 vs 搜索:
re.match类函数只从「开头」匹配,re.search才在全文找;JS 的test()也是全文找。新手「明明写对了却匹配不到」,一半栽在这。 - 贪婪与懒惰:量词默认「贪婪」——
.*会一口气吃到最后一个符合条件的字符;加?变「懒惰」,吃到第一个就停。这是「正则匹配多了内容」的头号原因。
学习路径建