2016-12-09 296 views
2

我有型蟒蛇正則表達式 - 字符串匹配的匹配尾

'Suite 100 <building name>, <street number, name + rest of address>' 

的地址字符串,我試圖提取套件的一部分,且套件後部分地址線的其餘部分,使用正則表達式,但它沒有按預期工作。下面是我使用的是什麼:

>> res = re.match(r'Suite \d+ (\S+)?', 'Suite 250 Victory Plaza, 100 Sunshine Street, Paradise City 99999') 
>> res.groups() 
>> ('Victory',) 

我想要的結果有兩個組,第一組包含「250套房」,第二次有字符串的其餘部分。我怎樣才能做到這一點?

回答

3

嘗試以下方法:

r"(Suite \d+)\s*(.+)" 

括號中的部分是將被捕獲的組。 ' '。'匹配任何字符(除非是新行,除非使用DOTALL標誌)。

您的模式有兩種錯誤。 1)您沒有捕獲「Suite \ d +」部分,因爲它沒有被括號包圍。 2)「\ S」匹配除空格以外的任何字符,這就是爲什麼你只捕獲第一個單詞。