正则表达式匹配“或”一组术语“和”特定术语

时间:2014-07-15 16:07:29

标签: regex

我有一套"或"我想要匹配的短语以及应该包含的单个术语。

或短语

包含以下任何词语的短语:

  • 接触|演示|网络研讨会|含量

和这个确切的词:

  • 帐户

所以它会匹配:

  • 联系帐户
  • 模拟账户
  • account webinar
  • 内容帐户等......

但不是......

  • 演示
  • 帐户
  • 演示联系
  • 帐户帐户
  • 演示演示

这似乎部分有效......

\b(contact|demo|webinar|content).*?(\b(?!\1)(account)\b)

但它不匹配(和应该)的是:

  • 帐户演示

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

\b(?=.*?\b(?:contact|demo|webinar|content)\b)(?=.*?\baccount\b).*

Online Regex Demo

答案 1 :(得分:0)

你可以试试下面的正则表达式,

\b(contact\b|demo\b|webinar\b|content\b)(?:(?!\1).)*(?: account)\b

DEMO