单字符匹配
字符 | 匹配规则 | 示例 |
. | 匹配任意一个字符(除了换行: ) | re.match("...", "ab") |
[] | 匹配[ ]中的任意一个字符 | re.match("1[34578]","18") |
d | 匹配任意一个数字字符,即0-9。d = [0-9] | re.match("d", "2") |
D | 匹配任意一个非数字字符。D = [^0-9] | re.match("D", "a") |
s | 匹配任意一个空白字符,相当于 [ fv] | re.match("s", " a") |
S | 匹配任意一个非空白字符,相当于 [^ fv] | re.match("S", " a") |
w | 匹配数字、字母、下划线中的任意一个字符,相当于 [a-zA-Z0-9_] | re.match("w", "_a") |
W | 匹配非数字、字母、下划线中的任意一个字符,相当于 [^a-zA-Z0-9_] | re.match("W", "1a") |
多字符匹配(匹配多个字符的相关格式:表示数量)
字符 | 匹配规则 | 示例 |
* | 匹配前一个元字符出现0次或者多次,即可以有0次。 | re.match("d*", "123") |
+ | 匹配前一个元字符出现1次或者多次,即至少有1次。 | re.match("d+", "123") |
? | 匹配前一个元字符出现1次或者0次,即要么有1次,要么没有。 | re.match("d?", "1234abc") |
{m} | 匹配前一个元字符出现 m 次。 | re.match("d{3}[a-z]", "1234abc") |
{m,} | 匹配前一个元字符至少出现 m 次。 | re.match("d{3,}[a-z]", "1234abc") |
{m,n} | 匹配前一个元字符出现m次到n次。 | re.match("d{3,5}[a-z]", "1234abc") |
表示边界
字符 | 匹配规则 | 示例 |
^ | 匹配目标字符串的开始位置,多行模式下匹配每一行的开始 | |
$ | 匹配目标字符串的结束位置,多行模式下匹配每一行的结束 | |
匹配一个单词的边界。单词边界:数字字母下划线和其它字符的交界位置为单词的边界 | 示例如下 | |
B | 匹配非单词的边界。就是看单词两边是不是数字字母下划线。若是,即为非单词边界 | 示例如下 |
A | 匹配字符串开始位置(^),忽略多行模式 | |
匹配字符串结束位置($),忽略多行模式 |
import re list = re.findall(r"is", "this is a test") print list # ['is'] is 左右两边都不是数字字母下划线的只有一个,即第二个is匹配成功(左右两边都是空格)。 list = re.findall(r"is", "this_is a test") print list # [] is 左右两边都不是数字字母下划线的没有一个。
原始字符串
str = " abc" print str # abc str = "\nabc" print str # abc str = r" abc" print str # abc
import re str = "\nabc" print str # abc str = r" abc" print str # abc res = re.match("\\nabc", str) print res.group(0) # abc res = re.match(r"\nabc", str) print res.group(0) # abc # str = "\nabc" = r" abc"
https://blog.csdn.net/weixin_40907382/article/details/79654372