这是表达方式,它不接受" _"作为一个特殊的角色
{(?=.{8,})(?=(.*\d){0,})(?=(.*\W){1,})}
答案 0 :(得分:1)
在模式中设置条件时,不要忘记实际使用字符,添加.+
以捕获1个或多个符号,或.*
以捕获0个或更多字符:
{(?=.{8,})(?=(.*\d){0,})(?=(.*[^a-zA-Z0-9]){1,}).+}
但是,如果你想要一个字符串至少有一个数字和至少一个非单词符号(不包括下划线),我建议使用
{(?=.{8,})(?=(?:.*\d){0,})(?=(?:.*[^a-zA-Z0-9]){1,}).+}
请参阅demo。