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

Regex地址拆分需求:分组匹配规则适配及现有正则异常修复

正则解决方案

修正后正则表达式

支持大小写不敏感匹配,写法如下:

(?i)^(.+?)(?: (?=(?:.*east|.*west)$|(?<!^the |^))(street|road))?(?: (east|west))?$

如果使用的正则引擎不支持内联(?i)标记,可移除前缀的(?i),在正则外部添加不区分大小写的匹配标识即可,例如JavaScript场景写法为:

const addressReg = /^(.+?)(?: (?=(?:.*east|.*west)$|(?<!^the |^))(street|road))?(?: (east|west))?$/i

匹配逻辑说明

完全符合你提出的规则,同时解决了原有异常问题:

  • 强制Group1始终非空,字符串以the开头时前缀会保留在Group1中
  • 仅当street/road不是字符串全部内容、也不是仅跟在开头的the后面作为末尾内容时,才会被划入Group2,避免了the street、STREET这类场景的错误拆分
  • Group3仅匹配字符串末尾的east/west,如果方位词后还有其他内容则不会被单独拆分
  • 拼写错误的道路类型(如strreet、SttReet)不会被划入Group2,会保留在Group1中

测试用例匹配结果符合要求

所有你提供的测试用例匹配结果均符合预期:

TextGroup 1Group 2Group 3
smithsmith
the streetthe street
STREETSTREET
the street westthestreetwest
smith streetsmithstreet
smith roadsmithroad
smith strreet eastsmith strreeteast
SMITHSMITH
SMITH StreetSMITHStreet
SMITH StreetSMITHStreet
Smith Street West abcSmith Street West abc
Smith Street EastSmithStreetEast
Smith SttReet EastSmith SttReetEast
Smith Street WestSmithStreetWest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:24:03