我有一個這樣的程序: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的正則表達式應用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
替換';'時使用「ignorecase」似乎沒有多大意義。 – georg