Python re 模块的 sub 方法:re.sub()。
用法:
re.sub(pattern, repl,string, count=0, flags=0)
在这里会容易出现的问题是,错误的将 flags 参数传入 count,例:
>>> re.sub('123.*','123*','123ab\nc', re.S)
'123*\nc'
是不是没有替换掉换行符后的字符?
正确的写法应该是当使用 re.sub() 的可选参数时,要传入所有可选参数。或者指定参数名,如下:
>>> re.sub('123.*','123*','123ab\nc',0, re.S)
'123*'
>>> re.sub('123.*','123*','123ab\nc', flags = re.S)
'123*'
2)re.Pattern.sub()
re.Pattern 对象是匹配模对象,由 re.compile() 生成。
用法:
re.Pattern.sub(repl,string, count=0)
接上例:
>>> regex = re.compile('123.*', re.S)
>>> regex.sub('123*','123ab\nc')
'123*'
这里 re.Pattern.sub() 不接受 flags 参数,因为 flags 是由 re.compile() 指定。