我需要从地址中提取6位数的邮政编码。
“51 Bras Basah Road#01-01宏利中心新加坡189554”
邮政编码总是6位数,但不一定在地址的最后一位。
请帮我提供一个合适的“java”正则表达式来获取上述地址的邮政编码。
ASMI
答案 0 :(得分:6)
如果您确定邮政编码是输入中唯一的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);
}
答案 1 :(得分:0)
这是简单的正则表达式
(。*)((\ d){6})$
第一组是“51 Bras Basah Road#01-01新加坡宏利中心” 第二组是邮政编码(6digits)
答案 2 :(得分:0)
这是一个正则表达式,可以找到 last 六位数字:
((\d{6}.*)*\s)?(\d{6})([^\d].*)?$
当然,在编译模式时需要转义字符串:
Pattern postal_code_group3 = Pattern.compile("((\\d{6}.*)*\\s)?(\\d{6})([^\\d].*)?$");
您可以从任何比赛的第3组获得邮政编码。
请注意,第2组会在邮政编码前强制使用空格,除非字符串以邮政编码开头。
第4组在邮政编码之后处理任何事情,并且还防止将7位或更多位数字作为邮政编码匹配。