https://regex101.com/r/RLi59p/1
/(?=.*[0-9])(?=.*[a-z])([a-z0-9]+)[!@#$%^&*]*$/i
我制作的正则表达式符合以下模式:
Test2123
568test
test2rest
@test2rest
@test2rest@
但无法匹配以下模式
@test2rest@5
@test2rest@test
答案 0 :(得分:1)
您需要在正则表达式中进行一些更正,并以这样的方式一起定义所有允许的字符,
(?=.*[0-9])(?=.*[a-z])[a-z0-9!@#$%^&*]*$
在正则表达式中,有这个
([a-z0-9]+)[!@#$%^&*]*
这意味着在您的输入字符串中,字母数字字符必须排在首位,最后是特殊字符,这就是失败的原因。
答案 1 :(得分:0)
在字符串检查结束时您缺少a-z
,因此@test2rest@#
匹配,但@test2rest@a
没有匹配。
尝试:
/(?=.*[0-9])(?=.*[a-z])([a-z0-9]+)[!@#$%^&*a-z]*$/i