我一直在這個工作了一段時間,但沒有得到解決。問題是我有地址的多行類似如下:如何從一行地址中提取郵政編碼?
Enright Ave 98213 62330 Saint Louis Missouri 314-544-0921
我認爲,打破由空白行以匹配五個連續數作爲郵政編碼(62330),但這並不工作因爲有時地址中有這樣的標籤(98213),有人可以提供一些建議嗎?感謝
我一直在這個工作了一段時間,但沒有得到解決。問題是我有地址的多行類似如下:如何從一行地址中提取郵政編碼?
Enright Ave 98213 62330 Saint Louis Missouri 314-544-0921
我認爲,打破由空白行以匹配五個連續數作爲郵政編碼(62330),但這並不工作因爲有時地址中有這樣的標籤(98213),有人可以提供一些建議嗎?感謝
試試這個:
ack yourfile.txt -o --match '[0-9]{5}(?!.*([0-9]{5}))'
這樣做有什麼發現,每行
之後,請你解釋你提供的正則表達式,我是新手。謝謝 – photosynthesis
'[0-9] {5}'匹配五個數字序列。 'foo(?!。* foo)'是一個負向前視,與最後一個元素匹配。有關更多詳細信息,請參見http://frightanic.wordpress.com/2007/06/08/regex-match-last-occurrence/。所以結合這兩者,你會得到[0-9] {5}(?!。*([0-9] {5})) – lubert
這似乎工作:([0-9]*[-]*[0-9]*)*
測試你的線時here
做的郵政編碼出現在最後5位數字在一個特定的位置?例如。通常它直接在狀態代碼/狀態名稱之後。 – Kevin
每一行的地址就像上面那個,郵政編碼出現在城市之前,街道地址 – photosynthesis