正则表达式简明指南

核心元字符速查

元字符 功能描述 示例 匹配案例
. 匹配除换行符外的任意字符 a.c abc, a1c
* 前导字符出现0次或多次 ab* a, ab, abb
+ 前导字符出现1次或多次 ab+ ab, abb
? 前导字符出现0次或1次 ab? a, ab
^ 匹配字符串起始位置 ^Start Start...
$ 匹配字符串结束位置 End$ ...End
[] 匹配括号内任意字符 [aeiou] a, e
[^] 排除括号内字符 [^0-9] a, B, @
() 创建捕获组 (ab)+ ab, abab
\ 转义特殊字符 \. .

字符类精要

  • 基础形式[A-Za-z] 匹配任意字母,[0-9] 匹配数字
  • 组合用法[\w.-] 匹配字母/数字/下划线/点/连字符(常用邮箱验证)
  • 排除匹配[^aeiou] 匹配非元音字符

量词匹配模式

模式 符号 示例 匹配结果对比
贪婪匹配 * + ? a.*b axxxxyb中的全部内容
非贪婪匹配 *? +? ?? a.*?b axxxxyb中的第一个a和b之间的最短匹配

锚点定位技巧

  • ^2025- 匹配以"2025-"开头的字符串(如日期)
  • -15$ 匹配以"-15"结尾的字符串
  • ^Hello$ 精确匹配整个字符串"Hello"

捕获组实战

  1. 基础分组
    (\d{4})-(\d{2})-(\d{2}) 匹配日期格式,捕获年/月/日
  • 示例:2025-04-15 → Group1:2025 Group2:04 Group3:15
  1. 反向引用
    (\b\w+)\s+\1 检测重复单词
    - 匹配:"hello hello"中连续重复的"hello"

预定义字符类

符号 等效表达式 功能说明
\d [0-9] 数字字符
\w [A-Za-z0-9_] 单词字符(含下划线)
\s [ \t\n\r] 空白字符(含空格/换行)
\D [^0-9] 非数字字符

高频使用技巧

  1. 手机号验证

^1[3-9]\d{9}$

  1. 邮箱验证

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

  1. HTML标签匹配

<([a-z]+)([^<]+)*(?:>(.*)<\/\1>| *\/>)