正则表达式

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

元字符 含义 示例
. 匹配任意单个字符 (除换行符 \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 等)。
相关推荐
特立独行的猫a2 天前
[鸿蒙PC三方库移植] 移植PCRE正则表达式库到鸿蒙PC平台的完整实践
华为·正则表达式·harmonyos·移植·pcre
独隅2 天前
Linux 正则表达式 的简介
linux·mysql·正则表达式
Maggie_ssss_supp3 天前
Linux-正则表达式
linux·运维·正则表达式
IT陈图图3 天前
基于 Flutter × OpenHarmony 图书馆管理系统之构建借阅记录模块
flutter·正则表达式·openharmony
WHOVENLY4 天前
揭秘正则表达式的基础语法与应用
开发语言·javascript·正则表达式
IT陈图图5 天前
基于 Flutter × OpenHarmony 的正则表达式测试器开发实战
flutter·正则表达式·openharmony
不平衡的叉叉树6 天前
我们遇到了正则表达式的灾难性回溯问题
java·正则表达式
Meteors.6 天前
正则表达式及其常见使用(Kotlin版)
正则表达式
至此流年莫相忘7 天前
正则表达式之捕获分组——Python篇
python·正则表达式
西红市杰出青年7 天前
crawl4ai------AsyncPlaywrightCrawlerStrategy使用教程
开发语言·python·架构·正则表达式·pandas