允许下划线“_”作为一个特殊的字符
当您设置一个模式里面的条件,不要忘了实际消耗的字符,添加.+
捕捉到1个或多个符号,或者.*
捕捉到0个或多个字符:
{(?=.{8,})(?=(.*\d){0,})(?=(.*[^a-zA-Z0-9]){1,}).+}
不过,如果你想要求一个字符串至少有1位和至少1个非字符号(不包括下划线),我建议使用
{(?=.{8,})(?=(?:.*\d){0,})(?=(?:.*[^a-zA-Z0-9]){1,}).+}
请参阅demo。
非常感谢, 但我担心的是它不接受“_”作为一个特殊字符,它接受作为一个正常字符。 正如我们所知,我们广泛使用下划线作为特殊字符 – user2078643
然而,'\ w'会将'_'视为字母数字字符,并与A-Za-z0-9一起使用。 – Docteur
@Docteur:你能解释一下吗? '.'会匹配'_',我的模式中没有'\ w'。是的,'\ w'匹配'_'。 –
你可能想解释你想做什么:) – Luaan
上面的表达式接受至少一个特殊字符,除了“_”我想这应该被允许。 – user2078643