我需要从地址中提取6位邮政编码。ReGex的邮政编码
“51勿拉士巴沙路#01-01宏利中心新加坡189554”
邮政代码始终是6位数,但不能肯定在最后的地址。
请帮我给一个合适的“java”正则表达式来获取上面的邮政编码地址。
ASMI
我需要从地址中提取6位邮政编码。ReGex的邮政编码
“51勿拉士巴沙路#01-01宏利中心新加坡189554”
邮政代码始终是6位数,但不能肯定在最后的地址。
请帮我给一个合适的“java”正则表达式来获取上面的邮政编码地址。
ASMI
如果你能肯定的是,邮政编码是你输入的只有6位数,你应该能够逃脱:
Pattern zipPattern = Pattern.compile("(\\d{6})");
Matcher zipMatcher = zipPattern.matcher("51 Bras Basah Road #01-01 Manulife Centre Singapore 189554");
if (zipMatcher.find()) {
String zip = zipMatcher.group(1);
}
下面是会发现最后六位数字正则表达式:
((\d{6}.*)*\s)?(\d{6})([^\d].*)?$
当然,Y OU需要编译图案时逃脱字符串:
Pattern postal_code_group3 = Pattern.compile("((\\d{6}.*)*\\s)?(\\d{6})([^\\d].*)?$");
您可以从任何比赛的3组得到的邮政编码。
请注意,除非邮政编码以字符串开头,否则组2会在邮政编码之前强制使用空格。
第4组负责邮政编码之后的任何事情,并且还防止将尾随的7位或更多位号码作为邮政编码进行匹配。
我试过了,它不起作用 – Asmi
请显示你的努力... [正则表达式教程](http://www.vogella.com/articles/JavaRegularExpressions/article.html) – Smit
你说的邮政编码可能不是地址的最后6个字符。提供这些地址的一些例子,所以正则表达式可以适当缩小。 –
的确如此,但他还没有说过是否只有邮政编码可以是6位数字。我想知道它是否总是最后6位数字的序列... –