← 返回首页

正则表达式入门与实践

发布:2026-08-31 · 分类:开发基础

常用元字符速查

符号含义示例
\d数字\d+ 匹配连续数字
\w字母数字下划线\w+ 匹配单词
.任意字符(换行除外)a.c 匹配 abc/axc
*前项重复0次以上ab* 匹配 a/ab/abb
+前项重复1次以上ab+ 匹配 ab/abb
?前项0或1次colou?r 匹配 color/colour
^ $行首行尾^abc 以abc开头
[abc]字符集合匹配 a 或 b 或 c

实战示例

匹配大陆手机号:

^1[3-9]\d{9}$

匹配邮箱(宽松版):

^[\w.-]+@[\w-]+(\.[\w-]+)+$

匹配中文:

[\u4e00-\u9fa5]+

匹配URL中的域名:

https?://([^/]+)

贪婪与非贪婪

默认量词是贪婪的——尽可能多匹配。加个 ? 变非贪婪,尽可能少匹配。提取HTML标签内容时这个区别最明显:<div>(.*)</div> 会一路吃到最后一个 div,而 <div>(.*?)</div> 在第一个闭合标签就停。处理结构化文本时,先想清楚要贪婪还是非贪婪,能省一半调试时间。

调试技巧

写正则别凭感觉,丢进在线测试器跑几个真实样本:正向的(应该匹配的)、反向的(不该匹配的)各来几组。注意不同语言的正则方言略有差异,比如 PHP 的 \d 在某些场景要写成 [0-9] 更稳妥。复杂正则拆开来分段验证,比一次性写完再排查快得多。

相关阅读

正则常用于日志和数据清洗,配合JSON格式化处理接口数据,配合curl转代码调试请求参数,效率翻倍。