我尝试过的正则表达式包括:
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
我得到的输出是:
testExp.test("sss is true")
testExp.test("ss is false")
testexp.test("sdsdsd is false") //which should be true.
这是我的正则表达式只考虑连续重复的字符而不考虑其他字符。
答案 0 :(得分:1)
尝试一下像:
rs2.Open
答案 1 :(得分:1)
您可以在.*
之前添加\1
(以匹配换行符之外的任何0 +字符)并使用以下正则表达式:
/(.)(?:.*\1){2,}/
或者,如果输入字符串中可以有换行符:
/([\s\S])(?:[\s\S]*\1){2,}/
请参阅regex demo。 [\s\S]
(或JS正则表达式中的[^]
)将匹配任何char,而.
匹配任何char但是换行符。
<强>详情
(.)
- 捕获与任何1个字符匹配的组#1 (?:.*\1){2,}
- 连续发生2次或以上:
.*
- 除了换行符之外的任何0 +字符\1
- 对第1组值的反向引用(与第1组中捕获的字符数相同)。答案 2 :(得分:0)
var text = 'abcdeaf';
if (text.match(/(.).*\1/) {} else {}