知识库
把公式这件事讲明白:4 节入门、81 个快捷键、9 类报错、50 条正则。
用于 WPS 的 REGEXP 函数:=REGEXP(文本, 正则, 模式, 替换内容)
[]匹配集合中任意单个字符
[abc] 匹配 "a"、"b"、"c"
.匹配任意单个字符(除换行符,部分模式下可匹配换行)
a.b 匹配 "a+b"、"a\nb"(开启 DOTALL 模式)
$匹配字符串结束位置(多行模式下匹配行尾)
a$ 匹配 "ba" 中的 "a"
^匹配字符串开始位置(多行模式下匹配行首)
^a 匹配 "abc" 中的 "a"
\A匹配字符串绝对开始位置(不受多行模式影响)
\Aa 仅匹配以 "a" 开头的字符串
\Z匹配字符串绝对结束位置(不受多行模式影响,允许末尾换行)
a\Z 匹配 "a\n" 中的 "a"
\z匹配字符串绝对结束位置(严格匹配最后一个字符)
a\z 不匹配 "a\n"(因末尾有换行)
+匹配前面元素 1 次或多次(贪婪模式)
a+ 匹配 "a"、"aaa"
*匹配前面元素 0 次或多次(贪婪模式)
a* 匹配 ""、"a"、"aaa"
?匹配前面元素 0 次或 1 次(贪婪模式)
a? 匹配 ""、"a"
[a-z]匹配指定范围内的字符(小写字母)
[a-c] 匹配 "a"、"b"、"c"
[A-Z]匹配指定范围内的字符(大写字母)
[A-C] 匹配 "A"、"B"、"C"
[0-9]匹配指定范围内的字符(数字)
[0-2] 匹配 "0"、"1"、"2"
[一 - 龥]匹配从 "一" 到 "龥" 的所有汉字(包含大部分简繁体)
[一-龥]{2,4} 匹配 "中国"、"中华民国"
[^]匹配不在集合中的任意单个字符
[^abc] 匹配 "d"、"1"、"#"
|匹配多个表达式中的任意一个
a|b 匹配 "a" 或 "b"
*?匹配前面元素 0 次或多次(非贪婪模式)
"a*?" 在 "aaa" 中匹配 ""
+?匹配前面元素 1 次或多次(非贪婪模式)
"a+?" 在 "aaa" 中匹配 "a"
??匹配前面元素 0 次或 1 次(非贪婪模式)
"a??" 在 "a" 中匹配 ""
{n}?匹配前面元素恰好 n 次(非贪婪模式,效果同 {n})
a{2}? 匹配 "aa"
{n,}?匹配前面元素至少 n 次(非贪婪模式)
"a{2,}?" 在 "aaa" 中匹配 "aa"
{n,m}?匹配前面元素至少 n 次,最多 m 次(非贪婪模式)
"a{2,3}?" 在 "aaa" 中匹配 "aa"
[[:alpha:]]匹配任意字母(等价于 [A-Za-z])
[[:alpha:]] 匹配 "a"、"Z"
[[:digit:]]匹配任意数字(等价于 [0-9])
[[:digit:]] 匹配 "3"、"9"
[[:alnum:]]匹配字母或数字(等价于 [A-Za-z0-9])
[[:alnum:]] 匹配 "a"、"5"
\d匹配任意数字(等价于 [0-9])
\d 匹配 "0"、"9"
\D匹配任意非数字(等价于 [^0-9])
\D 匹配 "a"、"#"
\w匹配字母、数字或下划线(等价于 [A-Za-z0-9_])
\w 匹配 "a"、"5"、"_"
\W匹配非字母、数字、下划线(等价于 [^A-Za-z0-9_])
\W 匹配 ""、"@"
\s匹配任意空白字符(空格、制表符、换行等)
\s 匹配 ""、"\t"、"\n"
\S匹配任意非空白字符
\S 匹配 "a"、"1"、"#"
\b匹配单词边界(单词与非单词字符之间的位置)
\bcat\b 匹配 "cat",不匹配 "category"
\B匹配非单词边界
\Bcat\B 匹配 "category" 中的 "cat"
( )定义子表达式并捕获匹配结果
(ab) 匹配 "ab" 并捕获该值
\1, \2...引用第 n 个捕获分组的匹配结果
(a)\1 匹配 "aa"(\1 引用第一个分组 "a")
(?:)定义子表达式但不捕获匹配结果
(?:ab) 匹配 "ab" 但不单独捕获
{n}匹配前面元素恰好 n 次
a{2} 匹配 "aa"
{n,}匹配前面元素至少 n 次
a{2,} 匹配 "aa"、"aaa"
{n,m}匹配前面元素至少 n 次,最多 m 次
a{2,3} 匹配 "aa"、"aaa"
\将特殊字符转为普通字符,或激活预定义序列
\. 匹配 ".",\n 匹配换行符
(?=pattern)匹配后面满足 pattern 的位置(不消费字符)
a(?=b) 匹配 "ab" 中的 "a"
(?!pattern)匹配后面不满足 pattern 的位置(不消费字符)
a(?!b) 匹配 "ac" 中的 "a"
(?<=pattern)匹配前面满足 pattern 的位置(不消费字符)
(?<=a)b 匹配 "ab" 中的 "b"
(?<!pattern)匹配前面不满足 pattern 的位置(不消费字符)
(?<!a)b 匹配 "cb" 中的 "b"
(?i)开启不区分大小写模式(作用于后续表达式)
(?i)abc 匹配 "ABC"、"Abc"
(?s)开启 DOTALL 模式(. 可匹配换行符)
(?s)a.b 匹配 "a\nb"
(?m)开启多行模式(^ 匹配行首,$ 匹配行尾)
(?m)^a 匹配多行文本中每行的开头 "a"
(?x)开启忽略空格模式(忽略表达式中的空格,可添加注释)
a b(带 (?x) 时等价于 "ab")
\p{Name}匹配具有指定 Unicode 属性的字符(如 \p {Letter} 匹配任意字母)
\p{Digit} 匹配任意语言的数字字符
\P{Name}匹配不具有指定 Unicode 属性的字符
\P{Letter} 匹配非字母字符