# . 匹配任意单个字符 # ^ 以什么字符开头 shift + 6 # $ 以字符结尾 # * 前面的字符出现0 次或多次 # + 前面的字符出现1 次或多次 # ? 出现0次或1次 # {m} 前面的字符出现 m 次 # {m,n} 前面的字符出现 m 到 n 次 # [] 中括号里面的任意字符 # | 字符选择左边或右边与括号一起用 # \d 匹配一串数字 相当于 [0-9]+ # \D 匹配非数字 # \w 匹配字母数字及下划线 # \W 匹配非字母数字及下划线
符号需要单独匹配,[.]
p = re.compile('[a-z]{3}.jpg') q = re.compile(r'[a-z]{3}[a-z]?[.]jpg$') # 应该这样使用,不加$ 则字符串后还有其它字符,也可以匹配成功 str = 'cetcjpgq1' str1 = 'cetc.jpg' print(p.match(str), q.match(str1)) 结果:<re.Match object; span=(0, 7), match='cetcjpg'> <re.Match object; span=(0, 8), match='cetc.jpg'>