新加坡地址的正则表达式

时间:2016-02-02 05:37:03

标签: java android regex

我在做Android。我一直在使用正则表达式来搜索新加坡地址。我遇到了很多正则表达式模式,但所有这些都不适用于我,因为大多数都是针对美国地址的。

我现在使用的当前正则表达式模式是:

\d{1,3}.?\d{0,3}\s[a-zA-Z]{2,30}\s[a-zA-Z]{2,15}

没有做太多。以下是新加坡地址的一些示例:

  • 2 Orchard Turn #B4-47 ION ORCHARD Singapore 238801

  • 68 Marine Parade Road #03-26B parkway Parade 449269

  • Nanyang Polytechnic 180 Ang Mo Kio Avenue 8 Singapore 569830

附加说明:每个地址都会显示邮政编码(后面有6位数字)

-------------------------------------------- ---- EDIT ---------------------------------------- < / p>

我需要一个可以从文本输出中检测和提取地址的正则表达式,还有其他信息。

例如:

Jean Watson
Managing Director

+65 96622235
68 Marine Parade Road #03-26B parkway Parade 449269

2 个答案:

答案 0 :(得分:1)

我有这个给你:)满足你的所有3个输入

  (\d{1,3}.)?.+\s(\d{6})$

请参阅DEMO

  

正则表达式解释:

(\ d {1,3}。) - 这匹配至少1位或最多3位

- 将其设为0或1

。+ - 匹配任何字符1次或多次

\ s - 匹配单个空格

(\ d {6})$ - 匹配以6位数结尾

答案 1 :(得分:0)

以下模式:

^.+?(?<!\d)\d{6}$

将匹配以下行:

  1. 以数字(一个或多个)开头,然后是。)
  2. 以6位数字(邮政编码)结束