Python—正则表达式
单字符匹配
| 字符 | 匹配规则 | 示例 |
| . | 匹配任意一个字符(除了换行:\n) | 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 | 匹配任意一个空白字符,相当于 [ \t\n\r\f\v] | re.match("\s", "\ta") |
| \S | 匹配任意一个非空白字符,相当于 [^ \t\n\r\f\v] | re.match("\S", "\na") |
| \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 | 匹配一个单词的边界。单词边界:数字字母下划线和其它字符的交界位置为单词的边界 | 示例如下 |
| \B | 匹配非单词的边界。就是看单词两边是不是数字字母下划线。若是,即为非单词边界 | 示例如下 |
| \A | 匹配字符串开始位置(^),忽略多行模式 | |
| \Z | 匹配字符串结束位置($),忽略多行模式 |
import re list = re.findall(r"\bis\b", "this is a test") print list # ['is'] is 左右两边都不是数字字母下划线的只有一个,即第二个is匹配成功(左右两边都是空格)。 list = re.findall(r"\bis\b", "this_is a test") print list # [] is 左右两边都不是数字字母下划线的没有一个。
原始字符串
str = "\nabc" print str # abc str = "\\nabc" print str # \nabc str = r"\nabc" print str # \nabc
import re
str = "\\nabc"
print str # \nabc
str = r"\nabc"
print str # \nabc
res = re.match("\\\\nabc", str)
print res.group(0) # \nabc
res = re.match(r"\\nabc", str)
print res.group(0) # \nabc
# str = "\\nabc" = r"\nabc"
https://blog.csdn.net/weixin_40907382/article/details/79654372

浙公网安备 33010602011771号