java - 使用java将英国邮政编码分成两个主要部分

标签 java regex postal-code

这个用于验证邮政编码的正则表达式非常有效

^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$

但我想拆分邮政编码以使用 java 检索邮政编码的各个部分。

这在 java 中如何完成?

最佳答案

以下是匹配英国邮政编码的官方正则表达式:

http://interim.cabinetoffice.gov.uk/media/291370/bs7666-v2-0-xsd-PostCodeType.htm

如果你想将找到的邮政编码分成两部分,这不就是一个空格分割的问题吗?英国邮政编码的两部分只是用一个空格隔开,对吧?在 Java 中,这将是:

String[] fields = postcode.split("\\s");

其中 postcode 是经过验证的邮政编码,fields[] 将是一个长度为 2 的数组,其中包含第一部分和第二部分。

编辑:如果这是为了验证用户输入,而您想验证第一部分,则您的正则表达式为:

Pattern firstPart = Pattern.compile("[A-Z]{1,2}[0-9R][0-9A-Z]?");

验证第二部分是:

Pattern secondPart = Pattern.compile("[0-9][A-Z-[CIKMOV]]{2}");

关于java - 使用java将英国邮政编码分成两个主要部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5611225/

相关文章:

Javascript 正则表达式错误,带有 'm' 标志,当正则表达式有效且在其他地方工作时,错误为 'invalid regexp group'

php - 在同一字段中搜索城市或邮政编码

java - 构造器字节码

regex - Flex 中的正则表达式可匹配除以下内容之外的任何单词

c# - 之间数据的正则表达式。和 {

php - 任何更快、更简单的 php preg_match 替代品

google-maps - 从邮政编码中检索完全合格的街道地址

Java 对具有多个参数的对象进行排序

java - 获取复选框检查状态

Java http 服务器和 web 文件夹