Java 如何从地址行中提取邮政编码?

Java 如何从地址行中提取邮政编码?,java,regex,Java,Regex,我在这方面做了一段时间,但没有找到解决办法。问题是我有多行地址,如下所示: Enright Ave 98213 62330 Saint Louis Missouri 314-544-0921 我曾考虑过用空格分隔这一行,以匹配邮政编码(62330)这五个连续数字,但这不起作用,因为有时地址中有这样的标签(98213),有人能提供一些建议吗?谢谢这似乎有效:([0-9]*[-]*[0-9]*)*在测试您的线路时尝试以下方法: ack yourfil

我在这方面做了一段时间,但没有找到解决办法。问题是我有多行地址,如下所示:

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

我曾考虑过用空格分隔这一行,以匹配邮政编码(62330)这五个连续数字,但这不起作用,因为有时地址中有这样的标签(98213),有人能提供一些建议吗?谢谢

这似乎有效:
([0-9]*[-]*[0-9]*)*
在测试您的线路时

尝试以下方法:

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

这样做的目的是查找每行的最后5位数字

zipcode是否显示在特定位置?例如,通常直接在州代码/州名称之后。每一行地址都与上面的一样,邮政编码出现在城市和街道地址之前。请您解释一下您提供的正则表达式,我是新手。谢谢
[0-9]{5}
匹配五位数字序列
foo(?。*foo)
是一个负前瞻,与最后一个元素匹配。有关更多详细信息,请参阅。因此,将这两者结合起来,得到[0-9]{5}(?。*([0-9]{5}))