1需要通過一些法律文件解析到裏面找到他們的任何地址。下面是一個例子Rails的正則表達式的家庭住址
測試=「9999個Lorem存有胡蘿蔔,增強回扣,但他們occaecat時間和活力,如勞動力和肥胖。多年來來,誰nostrud鍛鍊,學區工作123一些鳥12日,一些城市,NY,10005,但要aliquip前EA commodo consequat。DUIS,然而,cupidatat痛苦的慾望的快感發現是124的一些冰雹,12日,一些城市,NY,10005cillum等dolore麥格納逃離不產生任何結果。Excepteur他們是黑人cupidatat不excepteur都歸咎於這些服務不能軟的頭腦,是疲勞。Lorem存有胡蘿蔔,增強回扣sed125一些鳥類12日,一些市,NY,10005給occaecat時間和活力的工作126一些東西,一些城市,新紐約等dolore麥格納aliqua。UT enim廣告微量我會來,誰應nostrud鍛鍊, aliquip了她刺激計劃的優勢,如果學區是一個問題。想成爲在cupidatat cillum疼痛已經在DUIS等dolore麥格納被批評逃離產生任何結果的樂趣。 Excepteur是黑人cupidatat不excepteur都歸咎於這些服務故障弱化的頭腦,它會改變。「
tmp = test.scan(/(\d{3,6})(.*?)(\d{5})/)
tmp.each do |t|
puts t.join()
end
通常情況下,這些地址將開始以數字和一個郵政編碼結束,但在這些文檔並非總是如此
問題是,一些1次錯過,並得到一些不想要的結果一樣:
9999 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 123 some ave 12 st, some city, NY, 10005
124 some ave 12 st, some city, NY, 10005
125 some ave 12 st, some city, NY, 10005
126 SOMETHING SOMETHING, SOME CITY, NEW YORK et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum 11111
想什麼1是以下4個項目的數組:
123 some ave 12 st, some city, NY, 10005
124 some ave 12 st, some city, NY, 10005
125 some ave 12 st, some city, NY, 10005
126 SOMETHING SOMETHING, SOME CITY, NEW YORK
至於最後一個項目,1個敢肯定,此格式的所有地址會最終無論是「紐約」或「NY」。
覺得我的目標模式是1:
/(ANY DIGITS BETWEEN 3 AND 6)(AT LEAST 3 WORDS BUT NOT MORE THAN 10)((TRY FIRST ZIPCODE)|(IF NO ZIP CODE THEN TRY "NEW YORK" OR "NY"))/i
任何幫助將不勝感激。
看到這個問題和馬特的答案:http://stackoverflow.com/questions/9397485/regex-street地址匹配 – michaelmichael
看着聰明的街道,真棒應用程序,但它比我們發現的地址多得多地扣除我的帳戶,所以當解析實際的文檔時,它應該產生3個有效地址,它消耗了7個請求。以這樣的速度,它會花費太多。此外,它忽略了「SomeText127 some street,some city,NY,10005」的地址,注意文本和房屋號碼開始之間沒有間隔。 – pcasa
對。正如鏈接的答案所述,街道地址不是常規語言。僅使用正則表達式從法律文檔中可靠地提取街道地址是不可行的。這將很容易出錯。 – michaelmichael