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

如何编写匹配双词表各至少一个关键词的新闻标题过滤正则

双词表新闻标题过滤正则方案

原正则失效原因

你之前写的正则存在两个核心问题:

  • 强制要求第一词表关键词必须出现在第二词表关键词之前,反过来的场景无法匹配
  • 没有处理两个关键词之间的其他文本,仅能匹配两个关键词紧邻出现的情况

最优正则表达式(支持正向预查的引擎通用)

/^(?=.*\b(?:Threat actor|attack|skimm|malware|exploit|fraud|inject|trojan|ransom|RCE)\b)(?=.*\b(?:ATM|bank|Austria)\b).*$/i

规则说明

  • 两个(?=)正向肯定预查分别校验两个词表是否各至少有一个关键词存在,不限制关键词出现顺序
  • \b单词边界避免关键词被误识别为其他单词的一部分,比如不会把banking里的bank判定为命中
  • 非捕获组(?:)避免生成多余的捕获结果,匹配成功只会返回1次整体结果,不会因为多个关键词命中重复返回
  • 末尾的i修饰符适配标题大小写不统一的场景,如果要求严格区分大小写可以去掉

兼容版正则表达式(不支持预查的引擎可用)

如果你的使用环境不支持正向预查,可以用顺序交替的写法实现相同效果:

/\b(?:Threat actor|attack|skimm|malware|exploit|fraud|inject|trojan|ransom|RCE)\b.*\b(?:ATM|bank|Austria)\b|\b(?:ATM|bank|Austria)\b.*\b(?:Threat actor|attack|skimm|malware|exploit|fraud|inject|trojan|ransom|RCE)\b/i

测试用例验证结果

  • 测试用例1(仅含第一词表关键词):不匹配,符合预期
  • 测试用例2(同时含两个词表关键词):匹配成功,符合预期
  • 测试用例3(仅含第一词表关键词):不匹配,符合预期
  • 测试用例4(仅含第二词表关键词):不匹配,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:08