Javascript Can';t否定正则表达式

Javascript Can';t否定正则表达式,javascript,regex,regex-negation,negative-lookahead,Javascript,Regex,Regex Negation,Negative Lookahead,我试图在JavaScript中实现以下正则表达式的否定: ^(\d)\1+-(\d)\1+-(\d)\1+$ 该表达式与以下项匹配: 11111-111-11111 22-2222-2222 55-55555-55 而不是在以下情况下: 12-22-3345 32-44555-3333 我希望它与这些场景相反 我尝试了以下正则表达式,但它们不起作用: ^(?!(\d)\1+-(\d)\1+-(\d)\1+)$ ^(?!(\d))\1+-(?!(\d))\1+-(?!(\d))\1+$

我试图在JavaScript中实现以下正则表达式的否定:

^(\d)\1+-(\d)\1+-(\d)\1+$
该表达式与以下项匹配:

  • 11111-111-11111
  • 22-2222-2222
  • 55-55555-55
而不是在以下情况下:

  • 12-22-3345
  • 32-44555-3333
我希望它与这些场景相反

我尝试了以下正则表达式,但它们不起作用:

^(?!(\d)\1+-(\d)\1+-(\d)\1+)$
^(?!(\d))\1+-(?!(\d))\1+-(?!(\d))\1+$
^(?!(\d)\1+)-(?!(\d)\1+)-(?!(\d)\1+)$
我认为我对消极前瞻有着坚实的理解,但显然不是。我做错了什么?有人能给我指出解决问题的正确方向吗


编辑:这里有一个链接,用于处理当前的正则表达式:

这个负前瞻应该可以工作:

^(?!(\d)\1+-(\d)\1+-(\d)\1+$).*

我忘了输入我曾经尝试过的:^(?(!(\d)\1+-(\d)\1+-(\d)\1+).*$。我是如此接近!非常感谢。您试图求反的原始正正则表达式
^(\d)\1+-(\d)\1+-(\d)\1+$
也与以下内容匹配:
11111-21-31111
22-5222-6222
55-85555-95
,以及其他内容。这是故意的吗?我的印象是,每个数字块都应该由一个数字组成。这不是故意的!抢手货每个数字应包含一个要匹配的单个数字。我想我已经弄明白了……我想你想要的正正则表达式是:
^(\d)\1+-(\d)\2+-(\d)\3+$
。这将要求每个块由2个或多个相同的数字组成(但每个块的数字可能不同)。现在你只需要用anubhava的解决方案来否定它,那也不行。我试图匹配所有的块都是相同的数字。哦,如果是这样,那就更容易了:
^(\d)\1+-\1+-\1+$
。假设块2和块3可以是一个或多个数字。如果需要它们是两位或更多位数:
^(\d)\1+-\1\1+-\1\1+$
^(\d)\1+-\1{2,}-\1{2,}$