2014-03-02 59 views
0

我一直在這個工作了一段時間,但沒有得到解決。問題是我有地址的多行類似如下:如何從一行地址中提取郵政編碼?

Enright Ave 98213   62330 Saint Louis  Missouri  314-544-0921 

我認爲,打破由空白行以匹配五個連續數作爲郵政編碼(62330),但這並不工作因爲有時地址中有這樣的標籤(98213),有人可以提供一些建議嗎?感謝

+0

做的郵政編碼出現在最後5位數字在一個特定的位置?例如。通常它直接在狀態代碼/狀態名稱之後。 – Kevin

+0

每一行的地址就像上面那個,郵政編碼出現在城市之前,街道地址 – photosynthesis

回答

1

試試這個:

ack yourfile.txt -o --match '[0-9]{5}(?!.*([0-9]{5}))' 

這樣做有什麼發現,每行

+0

之後,請你解釋你提供的正則表達式,我是新手。謝謝 – photosynthesis

+0

'[0-9] {5}'匹配五個數字序列。 'foo(?!。* foo)'是一個負向前視,與最後一個元素匹配。有關更多詳細信息,請參見http://frightanic.wordpress.com/2007/06/08/regex-match-last-occurrence/。所以結合這兩者,你會得到[0-9] {5}(?!。*([0-9] {5})) – lubert

0

這似乎工作:([0-9]*[-]*[0-9]*)*測試你的線時here

相關問題