4

我有一个这样的程序:

import re

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

print x

但是输出是这样的:

aaaaaaaa.aa.aaa;aaa;aaaaaaaaaa;

还有一些;没有换成a .,为什么?

使用 Python 2.6

4

1 回答 1

7

更新 - 在 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
于 2012-05-13T10:18:07.527 回答