我想对一个字符串执行正则表达式检查,该字符串重复自身两次以上。 我正在使用ActionScript 3。
即:
koby = true
kobyy = true
kobyyy = false
我尝试使用
/((\w)\2?(?!\2))+/
但它似乎不起作用(使用RegExp.test()
)
答案 0 :(得分:3)
如果要使整个字符串无效,当有一个字符重复3次时,您可以使用否定的先行断言:
^(?!.*(\w)\1{2}).*
以(?!
开头的群组是negated lookahead assertion。这意味着当字符串中的字符重复3次时,整个正则表达式(.*
匹配整个字符串)将失败。
^
是字符串开头的anchor。
^ # match the start of the string
(?!.* # fail when there is anywhere in the string
(\w) # a word character
\1{2} # that is repeated two times
)
.* # match the string
答案 1 :(得分:1)
我也试过这个:
var regExp:RegExp = new RegExp('(\\w)\\1{2}');
trace(!regExp.test('koby'));
trace(!regExp.test('kobyy'));
trace(!regExp.test('kobyyy'));