Javascript RegEx匹配1-1-1和1-1-1-1-1但不是-1-1-1-1或1-1-1-1-

时间:2018-03-29 18:06:45

标签: javascript regex match

使用谷歌和堆栈溢出时,我找不到任何东西 我需要使用javascript RegEx匹配1-1-1而不是-1-1-1或1-1-1- 所以它必须以数字开头并以数字结尾,并且必须与" - "分开。 我无法弄明白,怎么做。
它甚至可能吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,JavaScript正则表达式没有后视(请参阅javascript regex - look behind alternative?),因此要排除前面的-,正则表达式也必须匹配前面的字符(如只要它不是-)。

由于可能没有前面的字符(输入以1开头),您还必须在输入的开头(^)匹配。

所以,这个正则表达式会这样做:(?:[^-]|^)(1(?:-1)+)(?!-)

请参阅regex101.com

是否应与独立1匹配,或仅在1-1(及更长时间)匹配,由您决定。上面的正则表达式与独立1不匹配。将+更改为*即可更改。

我还添加了您想要匹配的实际文本的捕获,即没有前导字符。如果不需要,您可以删除()周围的额外1(?:-1)+