正则表达式

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

元字符 含义 示例
. 匹配任意单个字符 (除换行符 \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 等)。
相关推荐
坚持就完事了1 天前
正则表达式与Python的re模块
python·正则表达式
前端小L4 天前
动态规划:驯服正则表达式的*号魔王
正则表达式
九皇叔叔5 天前
Linux Shell 正则表达式中的 POSIX 字符集:用法与实战
linux·运维·正则表达式
m0_64880493_江哥6 天前
用正则方法从中英文本提取英文的python示例
python·mysql·正则表达式
九皇叔叔6 天前
Linux Shell 正则表达式:从入门到实战,玩转文本匹配与处理
linux·mysql·正则表达式
一百天成为python专家7 天前
python爬虫入门(小白五分钟从入门到精通)
开发语言·爬虫·python·opencv·yolo·计算机视觉·正则表达式
蓝桉~MLGT8 天前
Python学习历程——字符串相关操作及正则表达式
python·学习·正则表达式
一晌小贪欢8 天前
Python爬虫第5课:正则表达式与数据清洗技术
爬虫·python·正则表达式·网络爬虫·python爬虫·python3·网页爬虫
MANONGMN9 天前
Linux 通配符与正则表达式(含实战案例+避坑指南)
linux·运维·正则表达式