我有一個功能吐出「華盛頓特區,美國」作爲輸出。我需要捕捉「華盛頓特區」,這是因爲我處理國內其他任何一個城市的原因。 (注意:這是而不是與「DC」相同,我需要逗號在「華盛頓」和「DC」之間,空格不錯)如何在Python正則表達式中匹配但不捕獲?
我不能爲我的生活弄清楚如何捕捉這個。
這是我已經試過:
>>>location = "Washington D.C., DC, USA"
>>>match = re.search(r'\w+\s(?:D\.C\.), \w\w(?=\W)', location).group()
>>>match
u'Washington D.C., DC'
是不是(?:...)應該只是比賽(而不是捕捉) 「特區」?
這裏是2.7.2文檔:
(?:...) 定期括號的非捕獲版本。匹配括號內的任何正則表達式,但匹配的子字符串在執行匹配或稍後引用模式後無法檢索。
什麼給?
在此先感謝!
對,我認爲OP的真正問題是沒有參數的'group()'返回匹配的整個字符串。除了用args調用'group()'外,另一種使用python的方法是調用groups()並捕獲子匹配(這將正確排除「D.C.」 – Hoons