博客 / 正则表达式入门教程
正则表达式入门教程:从零到掌握
2026-06-25 · 8 分钟阅读
什么是正则表达式?为什么你需要学它?
正则表达式(Regular Expression,简称Regex)是一种描述文本模式的特殊字符串。它就像一套"搜索密码",可以精确匹配、查找和替换文本中的特定模式。几乎所有主流编程语言都内置了正则表达式支持,包括JavaScript、Python、Java、Go和PHP。
掌握正则表达式能直接提升你的开发效率:
- 表单验证:一行代码验证邮箱、手机号、身份证号格式是否正确。
- 日志分析:从数万行日志中快速提取特定的错误信息和IP地址。
- 数据清洗:批量删除多余的空白字符、统一日期格式、提取CSV字段。
- 代码重构:在数百个文件中批量替换变量名或函数调用模式。
Stack Overflow的开发者调查显示,超过65%的开发者在日常工作中至少每周使用一次正则表达式。它不是选修课,而是必修课。
正则表达式核心语法
1. 字符匹配
最基础的正则就是匹配普通字符。例如,正则 cat 可以匹配文本中的 "cat":
.:匹配任意单个字符(除换行符外)。c.t可匹配 "cat"、"cut"、"c8t"。\d:匹配任意数字,等价于[0-9]。\w:匹配单词字符(字母、数字、下划线),等价于[a-zA-Z0-9_]。\s:匹配空白字符(空格、制表符、换行符)。\D、\W、\S:对应上述元字符的反义——匹配非数字、非单词字符、非空白。
2. 字符类(Character Class)
用方括号 [] 定义一个字符集合:
[aeiou]:匹配任意一个元音字母。[a-z]:匹配任意一个小写字母。[^0-9]:匹配任意一个非数字字符(^在方括号内表示"排除")。
3. 量词(Quantifiers)
量词控制前一个元素的出现次数:
?:出现0次或1次(可选)。colou?r同时匹配 "color" 和 "colour"。*:出现0次或多次。+:出现1次或多次。\d+匹配一个或多个连续的数字。{n}:恰好出现n次。\d{4}匹配四位数字(如年份)。{n,m}:出现n到m次。\d{6,18}匹配6到18位数字。
4. 锚点(Anchors)
锚点不匹配字符,而是匹配位置:
^:字符串的开头。$:字符串的结尾。\b:单词边界。\bcat\b只匹配独立的 "cat",不匹配 "category" 中的 "cat"。
5. 分组与捕获
用圆括号 () 将多个字符组合为一个单元:
(ab)+匹配 "ab"、"abab"、"ababab"。(\d{3})-(\d{4})匹配 "123-4567",并分别捕获区号和号码。- 非捕获分组
(?:...):只做分组,不捕获内容,性能更好。
6. 常见标志
i(ignoreCase):不区分大小写。g(global):全局匹配,查找所有结果而非停在第一个。m(multiline):多行模式,^和$匹配每行的开头和结尾。
实战案例:常见正则表达式
以下是几个高频使用的正则示例:
- 邮箱验证:
^[\w.-]+@[\w.-]+\.\w+$ - 手机号(中国大陆):
^1[3-9]\d{9}$ - URL提取:
https?://[^\s]+ - 中文匹配:
[\u4e00-\u9fa5]+ - 去除首尾空格:
^\s+|\s+$
如何高效学习和测试正则?
正则表达式最大的痛点在于"写对了没有?"——肉眼debug正则几乎是不可能的。因此,边写边测试是学习正则的最佳方式。
推荐使用 ToolHub 正则表达式测试工具,它提供:
- 实时匹配高亮,输入即展示结果,所见即所得
- 支持所有常用标志(i、g、m),一键切换
- 分组捕获结果单独展示,便于验证提取逻辑
- 无需安装任何软件,打开浏览器就能用
学习正则最好的方法就是动手实践。从表单验证开始——这是最直观的入门场景。打开 ToolHub 正则测试工具,把上面的示例粘贴进去,修改参数,观察匹配结果的变化。不出30分钟,你就能写出自己的第一个实用正则表达式。
正则表达式是一门"学习曲线陡峭但回报极高"的技能。它一天学会,终生受用——无论是写爬虫、做数据清洗、还是日常的文本处理,正则都能帮你节省大量时间。现在就从第一个模式开始练习吧。