4

私はこのようなプログラムを持っています:

import re

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

print x

しかし、出力は次のようになります。

aaaaaaaa.aa.aaa;aaa;aaaaaaaaaa;

;に置き換えられていないものがまだいくつかありますが.、なぜですか?

Python 2.6 の使用

4

1 に答える 1

7

更新 - Python 2.6 では、これを行うことができます:

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

Python 2.7 以降および 3.0 以降の場合

代わりにこれを行います。3 番目のパラメーターは実際にはカウント (作成する置換の数) であり、re.IGNORECASE単純な整数であるため、それをカウントとして使用しています。

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

>>> re.IGNORECASE
2
于 2012-05-13T10:18:07.527 に答える