m=re.search(pattern=r'[A-Z][a-z]+[A-Z][a-z]+',string='DuanHao,duanhao,zhangding,ZhangDing,Zhang ding')print(m.group())
DuanHao
type(m)<class're.Match'>
m=re.findall(pattern=r'[A-Z][a-z]+[A-Z][a-z]+',string='DuanHao,duanhao,zhangding,ZhangDing,Zhang ding')print(m)['DuanHao','ZhangDing']type(m)<class'list'>
m=re.split(r'\d{4}','asdf12455sdf84752ksdjf43976sdfjl')
m
['asdf','5sdf','2ksdjf','6sdfjl']for m in re.finditer(r'\d{4}','asdf12455sdf84752ksdjf43976sdfjl'):...print(m.group())124584754397
m=re.sub(r'\d+','LOVE','zhangfjla1245duandksfj')
m
'zhangfjlaLOVEduandksfj'
有没有^$的区别
[a-z]
可以用来匹配任意位置上的小写字母: “…a…”,中间内容匹配就行
^ [a-z]
只能匹配以小写字母为行首的行: “a…”,必须开头位置就要匹配
[a-z]$
只能匹配以小写字母为行尾的行: “…a”
最好不用*而使用+
m=re.findall(r'\d+','12999hk768')
m
['12999','768']
m=re.findall(r'\d*','12999hk768')
m
['12999','','','768','']#字母和结尾都为none也可以被匹配到,因为*是0或者N多,+是1或者N多
m=re.findall(r'\d*','12999hk768aaa')
m
['12999','','','768','','','','']