我有这样一个程序:
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
关于Python 正则表达式 re.sub : something,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10570937/