2017-02-03 357 views
0

我試圖創建一個表達式匹配地址城市和國家的名稱,如正則表達式匹配的城市和州的地址

100 Hall of Justice 
1701 Farnam St. 
Omaha 
Nebraska 
68183 United States 

3208 Sheridan Ct. 
Lincoln 
Nebraska 
68506 

3710 S 192nd St 
Omaha 
Nebraska 
68130 United States 

IL Court of Appeals 2nd District 
55 Symphony Way 
Elgin 
Illinois 
60120 United States 

正如你可以看到,城市和國家的名稱並不總是出現在地址內的同一位置(節點),但它們總是作爲一個單獨的字排列在整個地址之間的每一行

是否有一個ReGEX,我可以在這種情況下僅用於匹配城市和州名稱,而不管它們在地址中的位置?

+0

你有沒有嘗試什麼嗎?什麼是正則表達式? – anubhava

+0

嗨Anubhava - 我不知道正則表達式的味道。我是很新的正則表達式,但也有一些我使用 其他表達式。+(?= \ s + \(]手機[\)]) ^ * \ d + \ S \ w + \ S \ w + 我使用這些與WinAutomation軟件提取網頁 數據我想'\ w +'和'\ w +'但分別匹配地址中的每字每句,我似乎無法讓它只匹配了城市和國家 –

+0

試試這個正則表達式中'MULTILINE'模式:'^([\ w - ] +)\ n([\ w - ] +)' – anubhava

回答

1

在最簡單的情況下,下面的正則表達式模式將得到所需要的城市和國家名稱

(\w+)\n(\w+)\n\d+(\s+United States)?\n?$ 

https://regex101.com/r/U50ZbJ/3

(\w+)\n(\w+) - 兩個捕獲組,這將匹配城市狀態分別

0

基於@RomanPerek hrest的答案,現在它將匹配城市名稱和州名中的兩個(或更多)單詞。

([a-zA-Z ]+)\n([a-zA-Z ]+)\n\d+(\s+United States)?\n?$