正则表达式入门教程:从零开始学Regex
2026年2月 · 阅读时间 6分钟
正则表达式(Regular Expression,简称Regex)是处理文本的瑞士军刀。无论是表单验证、日志分析、数据清洗,还是代码搜索替换,都离不开它。
基础语法
字符匹配
.匹配任意单个字符(换行符除外)\d匹配数字 [0-9]\w匹配字母数字下划线 [a-zA-Z0-9_]\s匹配空白字符(空格、Tab、换行)\D匹配非数字(\d的反义)\W匹配非字母数字(\w的反义)量词
*0次或多次+1次或多次?0次或1次{n}恰好n次{n,m}n到m次{n,}至少n次位置锚点
^字符串开头$字符串结尾\b单词边界常用正则模式
手机号(中国):
^1[3-9]\d{9}$邮箱:
^[\w.-]+@[\w.-]+\.\w+$URL:
^https?:\/\/[\w.-]+\.\w+身份证号:
^\d{17}[\dXx]$IPv4地址:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}日期(YYYY-MM-DD):
^\d{4}-\d{2}-\d{2}$中文字符:
[\u4e00-\u9fa5]+HTML标签:
<[^>]+>实战示例
提取所有数字
// JavaScript
"价格是99.5元,共3件".match(/\d+\.?\d*/g)
// 结果: ["99.5", "3"]
替换敏感信息
// 手机号脱敏
"13812345678".replace(/(\d{3})\d{4}(\d{4})/, "$1****$2")
// 结果: "138****5678"
常见陷阱
⚠️ 贪婪匹配 — .* 默认尽可能多匹配,用 .*? 改为非贪婪
⚠️ 转义字符 — . * + ? 等特殊字符需要用 \ 转义
⚠️ 性能问题 — 避免嵌套量词如 (a+)+,可能导致灾难性回溯
⚠️ 多行模式 — 默认 ^$ 匹配整个字符串,加 m 标志匹配每行
在线测试工具
学正则最好的方式就是动手练。用我们的 正则表达式在线测试工具,实时高亮匹配结果,支持常用标志(g/i/m),还有常用模板一键使用。
更多开发者工具请访问 www.cyunyun.com。