正则表达式

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

元字符 含义 示例
. 匹配任意单个字符 (除换行符 \n,若开启多行模式则包含) a.c 匹配 abca&ca c
\d 匹配数字 (等价于 [0-9] \d{3} 匹配 123999
\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 ba\tb
\S 匹配非空白字符 \S+ 匹配 hello123
[] 匹配方括号内的任意一个字符(支持范围和排除) [a-z] 匹配 a-z 任意字母;[^0-9] 匹配非数字
` ` 逻辑,匹配左右任意一个表达式 `a b匹配ab`

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

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

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

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

语法 含义 示例
(pattern) 1.捕获组:将 pattern 视为一个整体,可通过索引引用匹配结果 2.将多个字符视为整体,配合量词使用 3.(情况1|情况2)表示多种情况的匹配范围 4.预查匹配项-自定义定位符-四、断言 (ab)+ 匹配 ababab(a)(b)group(1)agroup(2)b
(?:pattern) 非捕获组:仅将 pattern 视为整体,不单独捕获结果(用于优化性能) (?:ab)+ 匹配 abab,但无法单独获取 ab
\n 引用第 n 个捕获组的匹配结果(n 从 1 开始) (\d)a\1 匹配 1a12a2(不能匹配 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 等)。
相关推荐
小白快快跑哦2 天前
python-字符串全解(六):正则表达式-转义与非转义
python·正则表达式·转义与非转义
zx_741484813 天前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Patrick在香港6 天前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
梦帮科技8 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
yume_sibai14 天前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
研☆香15 天前
js中使用的正则表达式
开发语言·javascript·正则表达式
2601_9622935320 天前
浅学python | 正则表达式集锦
正则表达式·字符串匹配·python知识·浅学python·ip地址检查
2601_9622955820 天前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配
启观川20 天前
Python基础-第 16 章 综合案例:客户信息管理系统
开发语言·笔记·python·正则表达式
2601_9622940520 天前
Python 操作 Word:如何查找、替换和批量修改文本
python·正则表达式·word·文档处理·查找替换