python re.I问题 >>> re.sub('asdf','ITEEDU',s,re.I) 'ITEEDUITEEDUasdf' 只能匹配两个

>>> s='asdfasdfasdf'
>>> re.sub('asdf','ITEEDU',s)
'ITEEDUITEEDUITEEDU'
无re.I没问题

问题补充:

>>> re.sub('asdf','ITEEDU',s,re.I)
'ITEEDUITEEDUasdf'
有re.I只能匹配两个

 

满意回答:
因为re.sub有五个参数:
re.sub(pattern, repl, string, count=0, flags=0)
你在第四个参数写re.I相当于把count设成了2,所以只替换2次。
应该写成:
re.sub('asdf','ITEEDU',s,0,re.I)
或者
re.sub('asdf','ITEEDU',s,flags=re.I)    # 推荐

你可能感兴趣的:(python)