我需要一个RegExp代码如下:3个字母或数字并排再次,不超过
例子:
aab
有效_aaa
无效_abc
有效 _aabbcc
有效_aabbbcc
无效(bbb )aa22cc
有效 _aa222cc
无效(222 )xxxxxxxxxxx
无效_111111111
无效_xx11xx11
有效_
我这样做是为了验证实际
我需要一个RegExp代码如下:3个字母或数字并排再次,不超过
例子:
aab
有效_
aaa
无效_
abc
有效 _
aabbcc
有效_
aabbbcc
无效(bbb )
aa22cc
有效 _
aa222cc
无效(222 )
xxxxxxxxxxx
无效_
111111111
无效_
xx11xx11
有效_
我这样做是为了验证实际
如果要确保不超过两个连续的相同字符,可以使用反向引用:
/(.)\1{2}/
此表达式将匹配后面跟着两个自身副本的任何字符。因此,要确保没有三个字符重复,请检查正则表达式不匹配:
if(!preg_match('/(.)\1{2}/', $input)) {
// "valid"
}
你有两个要求(似乎):
这就是你的做法:
if (preg_match(
'/^ # Start of string
(?! # Assert that it is not possible to match...
.* # any string,
(.) # followed by any character
\1{2} # which is repeated twice.
) # (End of lookahead)
[a-z0-9]* # Match a string that only contains ASCII letters and digits
$ # until the end of the string.
\Z/ix', # case-insensitive, verbose regex
$subject)) {
# Successful match
}
在regex101上查看。