正则表达式(Regular Expression)是处理文本的强大工具,用于匹配、查找、替换字符串。虽然语法抽象,但一旦掌握,效率极高。
一、基础元字符
.任意单个字符(除换行)\d数字,\w字母数字下划线,\s空白*0 次或多次,+1 次或多次,?0 或 1 次{n}n 次,{n,m}n 到 m 次
二、字符类与锚点
[aeiou] 匹配任一元音
[^0-9] 匹配非数字
^start 行首
end$ 行尾
三、分组与捕获
(abc)+ abc 重复一次以上
(ab|cd) ab 或 cd
2026-(\d{2})-\d{2} 捕获月份
用括号分组后,可用 \1、\2 反向引用,或在替换时用 $1。
四、常见实战模式
# 邮箱(简化)
[\w.-]+@[\w.-]+\.\w+
# 手机号(中国大陆)
1[3-9]\d{9}
# URL
https?://[\w./?=&-]+
# IPv4
\d{1,3}(\.\d{1,3}){3}
正则匹配邮箱、URL 这种复杂格式很难做到 100% 准确,实际中常用"够用即可"的简化版本,而非追求 RFC 标准的完美正则。
五、贪婪与非贪婪
.* 贪婪(匹配尽可能多)
.*? 非贪婪(匹配尽可能少)
(.*?) 非贪婪提取链接文字
六、在 JavaScript 中使用
// 测试是否匹配
/^1[3-9]\d{9}$/.test(phone)
// 提取匹配
'2026-06-03'.match(/(\d{4})-(\d{2})-(\d{2})/)
// 替换
str.replace(/\s+/g, '-')
七、调试技巧
推荐用 regex101.com 在线调试,能可视化匹配过程,对学习极有帮助。
八、小结
正则是程序员必备技能。不必死记所有语法,掌握常用元字符和几个实战模式,遇到复杂的随时查文档、用工具调试。