正则表达式有一个数字或特殊字符

时间:2013-12-19 01:06:11

标签: regex

我有一个跟随正则表达式,但它似乎没有按预期工作。

我想要一个小写字母,一个大写字母,一个数字或一个特殊字符。

长度应至少为8个字符。

(^.*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*$)

任何人都可以帮忙吗

2 个答案:

答案 0 :(得分:2)

我看到两个问题。你的数字说明符前面有一个双反斜杠 - 使它成为一个单一的反斜杠。你也没有“特殊字符”的表达式。我添加了一个表达式以包含一些特殊字符 - 您可以根据需要调整它(小心 - 有些具有特殊含义,例如-)。

http://regex101.com/r/kM5xW6

的演示

表达式(更新以反映“一位数或一位特殊字符”):

(^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*_0-9]).*$)

这需要至少8个字符,小写字母,大写字母和列表!@#$%^&*_0-9中的字符(“0之间的特殊字符或数字之一9)。

答案 1 :(得分:0)

更有效的模式= ^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*_0-9])(.{8,})$ Demo