我正在寻找最终的邮政编码和邮政编码正则表达式。我正在寻找一种能覆盖世界大部分地区(希望是所有地区)的东西。
当前回答
正如其他地方指出的那样,世界各地的差异很大。即使某些东西符合模式也不意味着它存在。
当然,还有很多地方不使用邮政编码(例如much或爱尔兰)。
其他回答
考虑到每个国家都有如此多的边缘情况(例如。伦敦地址可能使用与英国其他地区略有不同的格式)我不认为有一个终极正则表达式,除了可能:
[0-9a-zA-Z]+
最好是使用一个相当广泛的模式(好吧,不像上面那么广泛),或者用自己的特定模式对待每个国家/地区!
更新:然而,它可能动态地构造一个正则表达式基于许多更小的,特定于区域的规则-虽然不确定性能!
在RegExLib网站上可以找到许多特定国家的模式。
没有。
世界各地的邮政/邮政编码并不遵循一个共同的模式。在一些国家,它们由数字组成,在其他国家,它们可以是数字和字母的组合,有些可以包含空格,有些可以包含点,字符的数量从2个到至少6个不等……
你能做的(理论上)是为世界上每个国家创建一个单独的正则表达式,我不推荐。但是您仍然会忽略验证部分:邮政编码12345可能存在,但12346不存在,也许12344也不存在。你如何用正则表达式检查它?
你不能。
我们使用以下方法:
加拿大
([A-Z]{1}[0-9]{1}){3} //We raise to upper first
美国
[0-9]{5} //-or-
[0-9]{5}-[0-9]{4} //10 digit zip
其他
接受现状
正如其他人指出的那样,用一个正则表达式来统治所有正则表达式是不可能的。但是,您可以使用来自万国邮政联盟(一个鲜为人知的联合国机构)的地址格式信息为尽可能多的国家创建正则表达式。
例如,以下是一些国家的地址格式规则,包括邮政编码(PDF格式):
加拿大 日本 瑞士 俄罗斯联邦 美利坚合众国
正如其他地方指出的那样,世界各地的差异很大。即使某些东西符合模式也不意味着它存在。
当然,还有很多地方不使用邮政编码(例如much或爱尔兰)。
推荐文章
- 如何从JavaScript中使用正则表达式的字符串中剥离所有标点符号?
- 正则表达式中的单词边界是什么?
- 如何将一个标题转换为jQuery的URL段塞?
- Javascript和regex:分割字符串并保留分隔符
- (grep)正则表达式匹配非ascii字符?
- 如何在保持原始字符串的同时对字符串执行Perl替换?
- 创建正则表达式匹配数组
- *的区别是什么?和。*正则表达式?
- 如何将“camelCase”转换为“Camel Case”?
- 在Java中使用正则表达式提取值
- Java中的正则表达式命名组
- 使用正则表达式搜索和替换Visual Studio代码
- 使用split("|")按管道符号拆分Java字符串
- 替换字符串中第一次出现的模式
- “\d”在正则表达式中是数字吗?