正则表达式

一、基础元字符(用于匹配单个字符)

元字符 含义 示例
. 匹配任意单个字符 (除换行符 \n,若开启多行模式则包含) a.c 匹配 abc、a&c、a c
\d 匹配数字 (等价于 [0-9]) \d{3} 匹配 123、999
\D 匹配非数字 (等价于 [^0-9]) \D 匹配 a、$、
\w 匹配字母、数字、下划线 (等价于 [a-zA-Z0-9_]) \w+ 匹配 user123、_name
\W 匹配非字母、数字、下划线 (等价于 [^a-zA-Z0-9_]) \W 匹配 @、#、空格
\s 匹配空白字符 (空格、制表符 \t、换行符 \n 等) a\sb 匹配 a b、a\tb
\S 匹配非空白字符 \S+ 匹配 hello、123
[] 匹配方括号内的任意一个字符(支持范围和排除) [a-z] 匹配 a-z 任意字母;[^0-9] 匹配非数字
` ` 逻辑或,匹配左右任意一个表达式 `a b匹配a或b`

二、量词(用于指定字符 / 组的重复次数)

默认是贪婪模式,尽可能多匹配

量词 含义 示例
* 匹配0 次或多次(尽可能多匹配,贪婪模式) a* 匹配 ""、a、aaa
+ 匹配1 次或多次(贪婪模式) a+ 匹配 a、aaa(不匹配 "")
? 匹配0 次或 1 次(贪婪模式) a? 匹配 ""、a(不匹配 aa)
{n} 匹配恰好 n 次 a{3} 匹配 aaa
{n,} 匹配至少 n 次(贪婪模式) a{2,} 匹配 aa、aaa...
{n,m} 匹配n 到 m 次 (贪婪模式,m 省略则为至少 n 次) a{1,3} 匹配 a、aa、aaa
*?/+?/??/{n,m}? 非贪婪模式(尽可能少匹配) a+? 匹配 a(在 aaa 中只取第一个 a)

三、分组与捕获(用于将多个字符视为一个整体)

语法 含义 示例
(pattern) 1.捕获组:将 pattern 视为一个整体,可通过索引引用匹配结果 2.将多个字符视为整体,配合量词使用 3.(情况1|情况2)表示多种情况的匹配范围 4.预查匹配项-自定义定位符-四、断言 (ab)+ 匹配 ab、abab;(a)(b) 中 group(1) 是 a,group(2) 是 b
(?:pattern) 非捕获组:仅将 pattern 视为整体,不单独捕获结果(用于优化性能) (?:ab)+ 匹配 abab,但无法单独获取 ab
\n 引用第 n 个捕获组的匹配结果(n 从 1 开始) (\d)a\1 匹配 1a1、2a2(不能匹配 1a2)

四、断言(用于定位匹配的位置,不消耗字符)

断言 含义 示例
^ 匹配字符串开头(多行模式下匹配行开头) ^abc 匹配 abc123(不匹配 xabc)
$ 匹配字符串结尾(多行模式下匹配行结尾) abc$ 匹配 123abc(不匹配 abcx)
(?=pattern) 正向先行断言:匹配位置后面 必须是 pattern a(?=b) 匹配 ab 中的 a(不匹配 ac 中的 a)
(?!pattern) 负向先行断言:匹配位置后面 必须不是 pattern a(?!b) 匹配 ac 中的 a(不匹配 ab 中的 a)
(?<=pattern) 正向后行断言:匹配位置前面 必须是 pattern (?<=a)b 匹配 ab 中的 b(不匹配 cb 中的 b)
(?<!pattern) 负向后行断言:匹配位置前面 必须不是 pattern (?<!a)b 匹配 cb 中的 b(不匹配 ab 中的 b)

五、转义字符 \

  • 用于匹配元字符本身 (如 .、*、+ 等),例如 \. 匹配小数点,\* 匹配星号。
  • 也用于激活特殊序列(如 \d、\w 等)。
相关推荐
Frag0ut15 小时前
Notepad++ 正则表达式完全手册:文本处理的终极武器(2026实战版)
正则表达式·notepad++·数据清洗·日志分析·正则替换·提取ip·正则表达式实战
Patrick在香港3 天前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
echome8884 天前
Python 正则表达式:5 个日常够用的模式
python·正则表达式
yivifu5 天前
能够使用Python正则表达式函数的文本处理工具——Calibre电子书编辑器
正则表达式
全栈陈序员6 天前
【Python】基础语法入门(二十九)—— 正则表达式实战:文本处理利器
开发语言·人工智能·python·正则表达式
BruceXu11 天前
\b 在中文里会静默失效:三个正则坑和一份能用的字符边界方案
正则表达式
阿昭L13 天前
正则表达式
正则表达式·编译原理
波力海苔夹心脆67513 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing0314 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦16 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义