单字符匹配
| 字符 | 匹配规则 | 示例 |
| . | 匹配任意一个字符(除了换行: ) | 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