正则表达式不允许超过3个相同的字符和至少3个单词

时间:2015-07-15 11:39:49

标签: regex

我有以下正则表达式:

/^\S+\s+\S+\s+\S+|([a-z])\1\1\1/

这成功检查我是否至少有3个单词,但也验证我是否有超过3个相同的字符。

需要在行上完成至少3个单词且连续字符数不超过3个。遗憾的是,不太了解正则表达式语法。

根据我的理解,我需要将上述内容结合起来,并使第二个具有负面的前瞻性。有人可以帮忙吗?

有效示例:

我喜欢汉堡

我非常喜欢汉堡

不错的商业广告

示例无效:

I

我喜欢

我喜欢burgeeeers

1 个答案:

答案 0 :(得分:1)

使用否定前瞻你可以做到:

/^(?!.*?([A-Za-z])\1{3})\S+\s+\S+\s+\S+/m

RegEx Demo

(?!.*?([A-Za-z])\1{3})是一个负面的先行,以确保相同的字母不会重复超过3次(查看我的演示)。