不能否定正则表达式
Can't negate regular expression
我正在尝试在 JavaScript 中实现以下正则表达式的否定:
^(\d)+-(\d)+-(\d)+$
该表达式匹配以下内容:
- 11111-111-11111
- 22-2222-2222
- 55-55555-55
而不是以下内容:
- 12-22-3345
- 32-44555-3333
我希望它做与那些场景相反的事情。
我试过以下正则表达式,但它们不起作用:
^(?!(\d)+-(\d)+-(\d)+)$
^(?!(\d))+-(?!(\d))+-(?!(\d))+$
^(?!(\d)+)-(?!(\d)+)-(?!(\d)+)$
我以为我对负前瞻的作用有深入的了解,但显然不是。我在这里做错了什么?谁能指出我正确的解决方案方向?
编辑:这里有一个 link 来扰乱当前的正则表达式:https://regex101.com/r/jY9mJ6/1
这种负向预测应该有效:
^(?!(\d)+-(\d)+-(\d)+$).*
我正在尝试在 JavaScript 中实现以下正则表达式的否定:
^(\d)+-(\d)+-(\d)+$
该表达式匹配以下内容:
- 11111-111-11111
- 22-2222-2222
- 55-55555-55
而不是以下内容:
- 12-22-3345
- 32-44555-3333
我希望它做与那些场景相反的事情。
我试过以下正则表达式,但它们不起作用:
^(?!(\d)+-(\d)+-(\d)+)$
^(?!(\d))+-(?!(\d))+-(?!(\d))+$
^(?!(\d)+)-(?!(\d)+)-(?!(\d)+)$
我以为我对负前瞻的作用有深入的了解,但显然不是。我在这里做错了什么?谁能指出我正确的解决方案方向?
编辑:这里有一个 link 来扰乱当前的正则表达式:https://regex101.com/r/jY9mJ6/1
这种负向预测应该有效:
^(?!(\d)+-(\d)+-(\d)+$).*