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

如何调整正则表达式,从匹配结果中排除逗号与句号?

调整后的正则表达式
(?i)\b(?:marche\s(?:\d{5})?-?(?:\d{3,5})|(?:\d{5})-?(?:\d{4})?\smarche|(?<=,)marche(?=[\.,])|marche(?=$|\.))\b

修改说明

针对原正则捕获逗号、句号的问题,核心做了两处调整:

  • 将原分支[,]marche[\.,]替换为(?<=,)marche(?=[\.,]):用正向回顾后发断言(?<=,)确保marche前存在逗号,正向先行断言(?=[\.,])确保marche后是逗号或句号。断言仅匹配位置,不会将符号纳入捕获结果。
  • 将原分支marche$替换为marche(?=$|\.):通过先行断言(?=$|\.)匹配行尾或句号前的marche,避免捕获结尾的句号。

其余分支保留原有匹配逻辑:

  • 匹配marche后跟数字组合(如marche 12345-1234、marche 12345)
  • 匹配数字组合后跟marche(如12345-1234 marche、12345 marche)

测试效果验证

针对你的测试字符串,调整后的正则会精准捕获以下无逗号、句号的目标内容:

  • marche(来自5,rue du marche,)
  • Marche(来自University Polytechnic of Marche,)
  • Marche(来自,Marche,、,Marche.)
  • Marche 12345-1234(来自,Marche 12345-1234,)
  • Marche(来自,Marche结尾)
  • Marche 12345(来自,Marche 12345、,Marche 12345.、,Marche 12345,Italy)
  • 12345-1234 Marche(来自,12345-1234 Marche.)
  • 12345 Marche(来自,12345 Marche.)

同时会忽略lemarche这类非独立的marche字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:35:21