正则表达式(Regular Expression)是一套描述“文本模式”的规则,用来在一大段文字里查找、提取或替换符合条件的内容。初学者觉得它难,是因为符号太多;但只要抓住几个核心概念,常用的匹配规则很快就能看懂和写出。
1. 字面匹配:想找什么就写什么
最简单的正则就是普通文字本身。用 class 匹配文本中的 “class”,用 2026 匹配 “2026”。这是所有正则的基础,其他规则都是在它之上加约束。
2. 字符类:匹配“某一类”字符
用方括号表示“其中之一”:[0-9] 匹配任意一个数字,[a-z] 匹配任意小写字母,[A-Za-z] 匹配任意字母。还有一些常用的缩写:\d 等于 [0-9],\w 等于字母数字下划线,\s 匹配空白字符。
3. 量词:控制出现次数
量词跟在字符后面,表示重复次数:
{4}:恰好 4 次,如\d{4}匹配四位数字;{2,4}:2 到 4 次;+:一次或多次,如\d+匹配连续数字;*:零次或多次;?:零次或一次。
把这些组合起来,就能匹配具体格式,比如 \d{4}-\d{2}-\d{2} 匹配 2026-08-19 这样的日期。
4. 分组与“或”:表达可选关系
用圆括号分组,用竖线表示“或”。例如 (cat|dog) 匹配 cat 或 dog;(https?://) 匹配 http:// 或 https://(s 出现零次或一次)。分组还方便后面引用,比如替换时保留某一段。
5. 常见例子
- 匹配手机号(简化版):
1[3-9]\d{9},即 1 开头、第二位 3 到 9、后面 9 位数字; - 匹配邮箱(简化版):
[\w.]+@[\w-]+\.[\w.]+; - 提取所有网址:
https?://[^\s]+; - 匹配中文字符:
[\u4e00-\u9fff]。
用工具验证,别靠猜
正则容易写错,尤其是转义和量词边界。本站的正则测试工具支持 g(全局)、i(忽略大小写)等修饰符,把表达式和测试文本一起放进去,就能立刻看到匹配数量和每个匹配项。工作里遇到提取、清洗、校验文本的需求,先在测试工具里验证再使用,能少踩很多坑。