我需要编写一个正则表达式,它将匹配字符:a-z A-Z 0-9 .!$%&-_@#
,没有空格和任何可能的顺序,但我对正则表达式的了解很好,可以说比专家更接近0。并且至少需要1个数字,1个特殊字符和1个字母。
我能够独立完成的事情:
[\S\w\.!$%&-_@#][^ ]{6,}
但是我不确定它会像我假设的那样工作。
问题:
我怎样才能使这个词不仅仅与整个单词相匹配呢?
修改 我已经对它进行了测试,并且没有达到这个目的:
并且需要至少1个数字,1个特殊字符和1个字母。
示例:
不匹配:
aS1@.&%~+
asd dfgf
axf1345
1s4%z_-@#$ .!$%&-_@#
正确的:
a1S#@%._
1aCF3%&
Abloct2$
@anubhava回答:
^(?=.*?[0-9])(?=.*?[a-zA-Z])(?=.*?[_.!$%&@#-])[\w.!$%&@#-]{6,}$
答案 0 :(得分:1)
您可以使用这个基于前瞻性的正则表达式:
^(?=.*?[0-9])(?=.*?[a-zA-Z])(?=.*?[_.!$%&@#-])[\w.!$%&@#-]{6,}$
(?=.*?[0-9])
是确保至少有一个数字(?=.*?[a-zA-Z])
是确保至少有一个字母(?=.*?[.!$%&@#-])
是确保至少有一个特殊字符答案 1 :(得分:0)
/[0-9a-zA-Z\$%&]+/
请尝试按照链接(页面中间部分)regex details
查看详细信息