我希望能夠使用正則表達式替換文件中的字符串。但是我的功能找不到匹配。所以我嘲笑了一個測試來複制正在發生的事情。爲什麼這個正則表達式不匹配這個字符串?
我定義我想更換如下字符串:
string = 'buf = O_strdup("ONE=001&TYPE=PUZZLE&PREFIX=EXPRESS&");'
我想替換 「TYPE = PUZZLE & PREFIX = EXPRESS &」 部分用別的東西。 NB。該字符串在原始文件中並不總是完全包含「PUZZLE」和「PREFIX」,但它將具有該格式)。
所以首先我試着測試我是否得到了正確的匹配。
obj = re.search(r'TYPE=([\^&]*)\&PREFIX=([\^&]*)\&', string)
if obj:
print obj.group()
else:
print "No match!!"
認爲([\^&]*)
將匹配任何數量的不是一個符號字符。 但我總是得到「不匹配!!」。
然而, obj = re.search(r'TYPE=([\^&]*)', string)
返回我 「TYPE =」
爲什麼我的第一個工作?
爲什麼在^之前的反斜槓? – abesto 2011-02-01 09:58:33
第一次改變應該是[^&] – 2011-02-01 09:58:56