【发布时间】:2013-02-21 09:18:34
【问题描述】:
我正在制作一个应用程序,要求用户输入邮政编码并在其有效时输出该邮政编码。
我发现了以下模式,它可以正常工作:
String pattern = "^([A-PR-UWYZ](([0-9](([0-9]|[A-HJKSTUW])?)?)|([A-HK-Y][0-9]([0-9]|[ABEHMNPRVWXY])?)) [0-9][ABD-HJLNP-UW-Z]{2})";
我对正则表达式知之甚少,如果有人能通过此声明与我交谈,那就太好了。主要看不懂?和()的用法。
【问题讨论】:
-
“邮政编码”是指“邮政编码”吗? IE 大多数美国人会称之为“邮政编码”?如果是这种情况,您的目标是哪个国家/地区的代码?
-
抱歉不清楚,是的,我的意思是邮政编码和英国的,无论如何我知道这是有效的并且是正确的,因为我测试过它我特别不明白的是为什么?我只需要正则表达式解释
-
()表示捕获组,正则表达式中的?表示它前面的任何内容都是可选的。考虑搜索正则表达式教程,Oracle 提供的教程是一个好的开始。 -
您可以获取所有邮政编码的列表并查看它是否包含在其中 - 可能更简单
-
好的,为什么我的问题被编辑了?
标签: java regex postal-code