正则表达式不匹配 6 个重复的数字

Regex not matching 6 repeated numbers

我正在尝试让正则表达式起作用,但被难住了。我想要的是做相反的事情:

/(\w){5,}/

这个正则表达式与我想要做的完全相反。我想得到除了具有 6 个重复数字的字符串之外的所有内容,即 111111999999

有没有办法对这个正则表达式使用负环视或其他东西?

你可以使用这个 rgex:

/^(?!.*?(\w){5}).*$/gm

RegEx Demo

(?!.*?(\w){5}) 是一个否定的前瞻,如果其中有 6 个连续的相同单词字符,则匹配失败。

我宁愿使用 \d shorthand class 作为数字,因为 \w 也允许字母和下划线。

^(?!.*(\d){5}).*$

正则表达式解释:

  • ^ - string/line 锚的开始
  • (?!.*(\d){5}) - 负向先行检查在可选字符数 (.*) 之后是否有一个数字 ((\d)) 紧跟 5 个相同的数字 ({5}).
  • .* - 匹配 0 个或更多字符直到
  • $ - string/line.
  • 结束

参见 demo。此正则表达式将允许