匹配数量

匹配字符正则 + 匹配数量正则 = 连续匹配N个字符正则

以下匹配结果均使用finall查找

正则 解释 原始字符串 匹配规则 匹配结果
? 匹配0个或1个 111223: [1]? [‘1’, ‘1’, ‘1’, ‘’, ‘’, ‘’, ‘’]
* 匹配0个或多个 111223: [1]* [‘111’, ‘’, ‘’, ‘’, ‘’]
+ 匹配1个或多个 111223: [1]+ [‘111’]
{3} 匹配3个 111223: [1]{3} [‘111’]
{3,5} 匹配3~5个 1114223: [12]{2,5} [‘111’, ‘22’]
{2,} 最少匹配2个 1114223: [12]{2} [‘11’, ‘22’]
{,6} 最多匹配6个(最少0个) 1114223: [12]{,4} [‘111’, ‘’, ‘22’, ‘’, ‘’]

非贪婪模式:.+ 改为.+?

单字符(普通)

[]里写多少内容,都只能匹配一个字符

规则 介绍 样本 示例 结果
[aeiou] 匹配中括号内的任意一个字母 Ab34d [abc] [‘b’]
[0-9] 匹配任何数字。等同于[0123456789] Ab34d [0-9] [‘3’, ‘4’]
[a-z] 匹配任何小写字母 Ab34d [a-z] [‘b’, ‘d’]
[A-Z] 匹配任何大写字母 Ab34d [A-Z] [‘A’]
[a-zA-Z0-9] 匹配任何字母及数字 Ab34d [a-zA-Z0-9] [‘A’, ‘b’, ‘3’, ‘4’, ‘d’]
[^aeiou] 除了aeiou字母以外的所有字符 Ab34d [^ab3] [‘A’, ‘4’, ‘d’]
[^0-9] 匹配除了数字外的字符 Ab34d [^0-9] [‘A’, ‘b’, ‘d’]

单字符(特殊)

规则 介绍 样本 示例 结果
a、b、3、m、q 普通字符,写什么就是什么 Ab34d A [‘A’]
. 匹配除 “\n” 之外的任何单个字符。 Ab34d . [‘A’, ‘b’, ‘3’, ‘4’, ‘d’]
\d 匹配一个数字。等价于 [0-9]。 Ab34d \d [‘3’, ‘4’]
\D 匹配一个非数字。等价于 [^0-9]。 Ab34d \D [‘A’, ‘b’, ‘d’]
\s 匹配任何空白字符,空格、制表符、换页符等。等价于 [\f\n\r\t\v]。 Ab34d \s []
\S 匹配任何非空白字符。等价于 [^\f\n\r\t\v]。 Ab34d \S [‘A’, ‘b’, ‘3’, ‘4’, ‘d’]
\w 匹配英文和数字+下划线。等价于’[A-Za-z0-9_]‘。 Ab34d \w [‘A’, ‘b’, ‘3’, ‘4’, ‘d’]
\W 匹配非英文和数字+下划线。等价于 ‘[^A-Za-z0-9_]‘ Ab34d \W []

位置匹配

限定:出现在首尾或者特定字符前后

规则 介绍 样本 示例 结果
^ 匹配字符串的开头 010-345 ^01.+- [‘010-‘]
$ 匹配字符串的末尾。 010-345 -.+5$ [‘-345’]
\A 匹配字符串的开头,忽略m标记 re.M标记后面讲
\Z 匹配字符串的末尾。忽略m标记 re.M标记后面讲
\b 匹配一个单词边界,也就是指单词和空格间的位置。 hello world .+lo\b [‘hello’]
\B 匹配非单词边界。 alpha bath happy \S+h\B [‘alph’]
(?:…) 匹配表达式,但捕获分组 abc a(?:b) [‘ab’] # 匹配ab, 但是不捕获b分组
(?=…) 匹配后缀,捕获前面的分组,但捕获该后缀 abc a(?=b) [‘a’] # a有b后缀,匹配a,不捕获b分组
(…) 捕获分组,并记住匹配的文本 abc a(b) [‘b’] # 匹配b, 并捕获b分组
(?!…) 如果没有后缀,则匹配 abc a(?!c) [‘a’] # a没有c后缀,可以匹配a
(?<=…) 匹配前缀,但不捕获前缀 cab (?<=a)b [‘b’] #b有a前缀,可以匹配b,但不捕获a分组
(? (?() )

分组

规则 介绍 样本 示例 结果
a b 匹配a或b
(re) 捕获分组,并记住匹配的文本
\1…\9 匹配第n个分组的内容。
(?P…) 捕获组名为Y
(?:…) 不捕获组
(?P=Y) 匹配名为Y的组
(?#…) 注释

标记

规则 介绍 样本 示例 结果
i 忽略大小写
m ^和$匹配行首和行尾
s .可以匹配换行符了
x 允许空格和注释
\L 由当前语音区域觉得 \w\W\b\B和大小写敏感匹配
\u Unicode匹配
(?iLmsux) 在正则表达式中设置标记

特殊符号

规则 介绍 样本 示例 结果
\r 回车符
\n 换行符
\t 水平制表符
\v 垂直制表符
\f 换页符
\YYY 八进制符号YYY
\xYY 16进制符号YY

替换

规则 介绍 样本 示例 结果
\g<0> 插入整段匹配
\g 插入匹配Y,Y可以是匹配的名字或者数字
\Y 插入名为Y的组