olga 发表于 2017-5-8 13:03:12

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)    # 推荐
页: [1]
查看完整版本: python re.I问题 >>> re.sub('asdf','ITEEDU',s,re.I) 'ITEEDUITEEDUasdf' 只能匹配两个