首页 > 解决方案 > 否定重复单词模式

问题描述

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

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

我真正需要的是这种模式的否定版本。我尝试过负前瞻,但没有用。

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

标签: regexregex-lookaroundsregex-negation

解决方案


您可以使用

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

请参阅正则表达式演示详情

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

推荐阅读