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

如何结合正则AND与OR逻辑,实现目标地址前缀的精准匹配?

解决地址前缀正则匹配问题

你需要从给定的非英文地址中提取开头包含MAH.或CAD.的前缀部分,原有正则因采用互斥可选组的逻辑,只能匹配单个片段甚至空字符,无法满足需求。以下是可行的解决方案:

推荐正则表达式

^((?:\p{L}+(?:\s\p{L}+)*\s(?:MAH\.|CAD\.)\s?)+)

正则逻辑解释

  • ^:锁定字符串开头,确保从地址起始位置提取内容
  • (?:\p{L}+(?:\s\p{L}+)*):匹配由Unicode字母组成的名称(支持多单词名称,比如UĞUR MUMCU)
  • \s(?:MAH\.|CAD\.):匹配空格后接MAH.或CAD.的固定标识
  • \s?:允许标识后带一个可选空格,兼容地址格式差异
  • +:重复整个片段规则,支持捕获多个连续的MAH./CAD.组合

匹配结果验证

针对你的示例地址,将得到以下目标匹配项:

  1. KENNEDY CAD. SİRKECİ ARABALI VAPUR İSKELESİ FATİH/ İSTANBUL → 匹配 KENNEDY CAD.
  2. YAVUZTÜRK MAH. KARADENİZ CAD. NO:2 ÜSKÜDAR/ İSTANBUL → 匹配 YAVUZTÜRK MAH. KARADENİZ CAD.
  3. HAMİDİYE MAH. ALPEREN SOK. NO:15/2 ÇEKMEKÖY/ İSTANBUL → 匹配 HAMİDİYE MAH.
  4. UĞUR MUMCU MAH. YUNUS EMRE CAD. NO:25 KARTAL/ İSTANBUL → 匹配 UĞUR MUMCU MAH. YUNUS EMRE CAD.

如果需要不区分大小写匹配,可添加i修饰符:

^((?:\p{L}+(?:\s\p{L}+)*\s(?:MAH\.|CAD\.)\s?)+)$i

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:20:32