我想模式匹配並用Python 2.7替換第一人稱與第二人稱。Python 2.7的正則表達式捕獲組不按預期工作
string = re.sub(r'(\W)I(\W)', '\g<1>you\g<2>',string)
string = re.sub(r'(\W)(me)(\W)', '\g<1>you\g<3>',string)
# but does NOT work
string = re.sub(r'(\W)I|(me)(\W)', '\g<1>you\g<3>',string)
我想用正則表達式最後,但不知何故,捕捉組全亂了,甚至做了一個\ g < 0>呈現奇怪的,不規則的比賽。我認爲捕獲小組3將是最後一個詞的界限,但似乎並非如此。
樣本一句話可能是:I like candy.
我不感興趣,非常符合更換的正確性(我將永遠不會真正被選中,因爲我先走),但我不知道爲什麼捕捉組不按我期望的那樣工作。
謝謝!
什麼是Python版本,順便說一句? –
2.7!我會補充問題。 –
然後,第三種模式至少有兩個問題:錯誤的變更邊界和非參與組替換。你不會得到''無與倫比的組''錯誤嗎? –