匹配数字相关
'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
'^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
'$' 匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
'*' 匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac") 结果为['abb', 'ab', 'a'],如果想控制一个组,可以加()
'+' 匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']
'?' 匹配前一个字符1次或0次,常用来表示可有可无(出现1次或0次)的一个符号
'{m}' 匹配前一个字符m次
'{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb'] ,可以替代'*' '+' '?' 为:{0,} {1,} {0,1}
'[]' 字符集,匹配[]中的字符(其中的字符是或的关系),其中的字符可以一一列出,也可以给出范围,元字符在其中失去意义,除非元字符前面加了反斜杠。有几种特殊的元字符依然有意义:表示范围的'-', 取反的'^',和'\'
![]()
1 >>> re.search('[a|b]','aabcd').group() # search方法在字符集匹配时只匹配一次
2 'a'
3 >>> re.search('[a|b]+','aabcd'). # '+' 匹配一次或多次字符集中的内容
4 'aab'
5
6 >>> re.findall('[a|b]','aabcd')
7 ['a', 'a', 'b']
8 >>>
View Code