否定重复词模式

Negating duplicate words pattern

我是正则表达式的新手,我有以下模式可以检测以破折号分隔的重复单词

\b(\w+)-+\b
// matches: hey-hey
// not matches: hey-hei

我真正需要的是这个模式的否定版本。 我试过负前瞻,但效果不佳。

(?!\b(\w+)-+\b)

您可以使用

\b(\w+)-+(?!\b)\w+

参见regex demo详情:

  • \b - 单词边界
  • (\w+) - 第 1 组:一个或多个单词字符
  • -+ - 一个或多个连字符
  • (?!\b)\w+ - 一个或多个不等于第一个捕获组值的单词字符。