正则表达式

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

元字符 含义 示例
. 匹配任意单个字符 (除换行符 \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 等)。
相关推荐
小白快快跑哦1 天前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符
11路没有终点1 天前
正则表达式(Regex)通用学习文档
正则表达式
小白快快跑哦1 天前
python-字符串全解(六):正则表达式-分组
python·mysql·正则表达式·分组
临床数据科学和人工智能兴趣组2 天前
正则表达式的基础语法的基本符号
开发语言·人工智能·python·正则表达式·r语言·r语言-4.2.1·workbudyy
只愿云淡风清2 天前
正则表达式学习笔记-01 正则表达式的来源
笔记·学习·正则表达式
半亩码田3 天前
C#转Python第4.8篇:正则表达式:Python re 模块 vs C# System.Text.RegularExpressions
python·正则表达式·c#
残诗3 天前
正则表达式分类掌握与应用
正则表达式
databook9 天前
面向数据工程师的正则表达式:从日志清洗到字段提取
python·正则表达式·数据分析
小白快快跑哦10 天前
python-字符串全解(六):正则表达式-位置断言
python·正则表达式·位置断言
哭泣方源炼蛊13 天前
正则表达式c++内容汇集
数据库·c++·mysql·正则表达式