You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改正则捕获组 实现两种格式地址的字段分组解析

正则调整方案

原有正则强制要求街道地址后必须匹配逗号,因此无法兼容仅用空格分隔、无逗号的地址格式,同时存在邮编匹配规则不严谨、冗余匹配项问题,调整后的正则如下:

^(.*?(?:Lane|Street|Boulevard|Crescent|Place|Road|Highway|Avenue|Drive|Circuit|Parade|Telopea|Nicklin Way|Terrace|Square|Court|Close|Endeavour Way|Esplanade|East|The Centreway|Mall|Quay|Gateway|Low Way|Point|Rd|Morinda|Way|Ave|St|South Steyne|Broadway|HQ|Expressway|Castlereagh|Meadow Way|Track|Kulkyne Way|Narabang Way|Bank))[,\s]+(.*?)[,\s]+([A-Z]{2,3})[,\s]+(\d{3,4})$
核心修改点
  • 将各分组之间原先强制匹配逗号的规则,替换为匹配1个及以上的逗号或空白字符([,\s]+),同时兼容「逗号+空格分隔」「仅空格分隔」两类地址格式
  • 修正邮编匹配规则,将原先可匹配0位数字的\d{,4}调整为\d{3,4},兼顾现有测试用例中3位、4位邮编的场景,若确认所有邮编均为4位可直接改为\d{4}提升匹配精度
  • 删除街道后缀列表中重复的Street项,移除无意义的空非捕获组(?:)?,精简匹配逻辑
匹配验证

两类地址均可正确拆分为4个目标分组:

带逗号分隔的原有地址样例

以3-11 Hamilton Street, Townsville City, QLD, 4810为例,捕获结果:

  • street_address:3-11 Hamilton Street
  • subrub:Townsville City
  • state:QLD
  • postcode:4810

无逗号分隔的新增地址样例

以1, 3, 5 Demeter Street & 12 Hermes Avenue ROUSE HILL NSW 2155为例,捕获结果:

  • street_address:1, 3, 5 Demeter Street & 12 Hermes Avenue
  • subrub:ROUSE HILL
  • state:NSW
  • postcode:2155

以31 Stephen Street SOUTH TOOWOOMBA QLD 4350为例,捕获结果:

  • street_address:31 Stephen Street
  • subrub:SOUTH TOOWOOMBA
  • state:QLD
  • postcode:4350

内容的提问来源于stack exchange,提问作者dougj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:16:19