2017-02-16 47 views
-1

這裏是我的代碼:如何使Python應用re.sub不會錯過模式

re.sub(r"([GAT])G", r"\g<1>A", "GCGGG") 

這給我的結果是:「GCGAG」,

但我真的希望得到的是「GCGAA」 , 我該怎麼辦?

爲什麼最後的'G'不會變成'A'?

+0

比賽不能重疊。沒有很好的方法來理解重疊替換。 [其他正則表達式庫](https://pypi.python.org/pypi/regex)支持重疊匹配,但仍不能替代。 – user2357112

回答

0

GG是第一場比賽;其第二個G不能參加另一場比賽。您可以使用lookbehind來檢查,如果圖案是由另一種模式之前沒有包括在比賽中,辦理入住手續,但:

re.sub(r"(?<=[GAT])G", "A", "GCGGG") 
+0

非常感謝! – kelloggs