Python 正则表达式 re.sub :某物



我有这样的程序:

import re
x='aaaaaaaa;aa;aaa;aaa;aaaaaaaaaa;'
x=re.sub(';','.',x, re.IGNORECASE)
print x

但输出是这样的:

aaaaaaaa.aa.aaa;aaa;aaaaaaaaaa;

还有一些;没有被.取代,为什么?

使用 Python 2.6

更新 - 在Python 2.6中,你可以这样做:

>>> re.sub('(?i);','.',x)
'aaaaaaaa.aa.aaa.aaa.aaaaaaaaaa.'

对于 Python 2.7+ 和 3.0+

这样做,第三个参数实际上是计数(要进行的替换次数),re.IGNORECASE只是一个整数,因此它使用它作为计数。

>>> re.sub(';','.',x, flags=re.IGNORECASE)
'aaaaaaaa.aa.aaa.aaa.aaaaaaaaaa.'
>>> re.IGNORECASE
2

最新更新