带有空格的英国邮政编码的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正则表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章