str = 'an simple example'
print re.sub(r'^AN', 'A', str, re.I)
據預計打印A simple example
但是,它仍然打印an simple example
爲什麼不能在Python正則表達式工作
Python版本2.7(Fedora的x84_64)
str = 'an simple example'
print re.sub(r'^AN', 'A', str, re.I)
據預計打印A simple example
但是,它仍然打印an simple example
爲什麼不能在Python正則表達式工作
Python版本2.7(Fedora的x84_64)
的re.sub
最後一個參數是要做的替換計數。 如果你想選擇更換,編譯正則表達式:
>>> r = re.compile(r'^AN', re.IGNORECASE)
>>> my_str = 'AN simple example'
>>> r.sub('A', my_str)
'A simple example'
如果你想不敏感的替代使用不敏感的選項:
str = 'an simple example'
print re.sub(r'(?i)an', 'A', str)
正如變成真正的指出,第三個參數是替換的次數去做。
的re.sub
整個定義是
def sub(pattern, repl, string, count=0, flags=0):
所以不是編譯正則表達式,你可以使用
print re.sub(r'^AN', 'A', str, 0, re.I)
或命名參數:
print re.sub(r'^AN', 'A', str, flags=re.I)
順便說一句,str
已經是一個python函數(但沒有保留關鍵字), 所以重新定義str可能會導致奇怪的問題。
(只需添加,'re.sub'中的標誌自2.7開始) – bereal 2012-03-21 10:30:48
此外,不要使用'str'作爲變量名稱。它是一個內置的字符串 – jdi 2012-03-21 09:28:19