街道地址中单词的正则表达式
Regex for words in street addresses
我知道依赖正则表达式获取街道地址的危险。但是,我必须使用正则表达式,而且我的地址都是澳大利亚的,并且格式良好,来自一个受监管的来源。
我成功地使用群组 return 来自以下
的街道号码和街道名称
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
我的群组给我 'Unit' 和“1”
fiddle 在这里:https://regex101.com/r/aLRNgp/1
我认为有问题的正则表达式仅用于匹配您地址中的门牌号和街道名称部分。您的正则表达式看起来很复杂,但是要使用前缀 Unit 解决问题:
^((?:Unit )?[\w\-\/\.\&]*)\s*([\w '\-\.\ ()]+)
我知道依赖正则表达式获取街道地址的危险。但是,我必须使用正则表达式,而且我的地址都是澳大利亚的,并且格式良好,来自一个受监管的来源。
我成功地使用群组 return 来自以下
的街道号码和街道名称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
我的群组给我 'Unit' 和“1”
fiddle 在这里:https://regex101.com/r/aLRNgp/1
我认为有问题的正则表达式仅用于匹配您地址中的门牌号和街道名称部分。您的正则表达式看起来很复杂,但是要使用前缀 Unit 解决问题:
^((?:Unit )?[\w\-\/\.\&]*)\s*([\w '\-\.\ ()]+)