正则表达式(Regular Expression)是处理文本的强大工具,用于匹配、查找、替换字符串。虽然语法抽象,但一旦掌握,效率极高。

一、基础元字符

二、字符类与锚点

[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 在线调试,能可视化匹配过程,对学习极有帮助。

八、小结

正则是程序员必备技能。不必死记所有语法,掌握常用元字符和几个实战模式,遇到复杂的随时查文档、用工具调试。