带有空格的英国邮政编码的Java正则表达式[重复]

Posted

技术标签:

【中文标题】带有空格的英国邮政编码的Java正则表达式[重复]【英文标题】:Java regex for Uk postcodes with spaces [duplicate] 【发布时间】:2015-07-22 15:47:57 【问题描述】:

我正在尝试创建一个匹配以下模式的正则表达式(带和不带空格):

M1 1AA、M60 1NW、CR2 6XH、DN55 1PT、W1A 1HQ 和 EC1A 1BB

我对此很陌生,发现很难为上述所有示例创建一个功能性正则表达式。

到处搜索我发现了一个可能适用于某些模式的正则表达式,但我不知道如何为每种类型的邮政编码添加条件“有或没有空格”。

这是我在另一篇文章中找到的正则表达式“^(A-PR-UWYZ [0-9][ABD-HJLNP-UW-Z]2)”

如何添加空格/无空格条件?为了匹配 M11AA 或 M1 1AA。

【问题讨论】:

我们中的一些人不熟悉英国邮政编码。你能举几个不应该匹配的例子吗?否则,看起来大写字母和数字的任何组合(以大写字母开头)都应该匹配。 在副本中,在接受的答案中有指向英国邮政编码语法的链接 【参考方案1】:

你需要这个正则表达式:

^([A-PR-UWYZ](([0-9](([0-9]|[A-HJKSTUW])?)?)|([A-HK-Y][0-9]([0-9]|[ABEHMNPRVWXY])?)) ?[0-9][ABD-HJLNP-UW-Z]2)$
                                                                                     ^

这个空格必须用? 量词设置为可选,表示0 或1 次重复

见demo

【讨论】:

感谢您的帮助。效果很好!

以上是关于带有空格的英国邮政编码的Java正则表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配英国邮政编码的前半部分

Java中的正则表达式-删除不必要的空格[重复]

英国邮政编码正则表达式验证

英国邮政编码的正则表达式

用于识别英国邮政编码的 R 正则表达式

有效的英国邮政编码正则表达式模式?