正则表达式用于街道地址中的单词

时间:2018-06-25 00:35:55

标签: regex preg-match

我知道依靠正则表达式获取街道地址的危险。但是,我必须使用正则表达式,而且我的地址全是澳大利亚人,并且格式来自一个受监管的来源。

我已成功使用群组从以下位置返回街道编号和街道名称

1 Main Street, Sydney NSW 2000
1A Main Street, Sydney NSW 2000
1/20 Main Street, Sydney NSW 2000
1/20A Main Street, Sydney NSW 2000
U1/20A Main Street, Sydney NSW 2000

我的(PHP)表达式为~([\w\d\-\/\.\&]*)\s*([\w\d '\-\.\ ()]+)~

但是我很难适应它:

Unit 1/20 Main Street, Sydney NSW 2000

我的小组给我“单位”和“ 1”

小提琴在这里:https://regex101.com/r/aLRNgp/1

1 个答案:

答案 0 :(得分:1)

我相信所涉及的正则表达式仅用于匹配您地址中的门牌号码和街道名称部分。您的正则表达式看起来很复杂,但是要使用前缀Unit use来解决此问题:

^((?:Unit )?[\w\-\/\.\&]*)\s*([\w '\-\.\ ()]+)

Demo

相关问题