正则表达式简明指南

核心元字符速查

元字符 功能描述 示例 匹配案例
. 匹配除换行符外的任意字符 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.*b axxxxyb中的全部内容
非贪婪匹配 *? +? ?? a.*?b axxxxyb中的第一个a和b之间的最短匹配

锚点定位技巧

捕获组实战

  1. 基础分组 (\d{4})-(\d{2})-(\d{2}) 匹配日期格式,捕获年/月/日
  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>| *\/>)