经过大量搜索,我无法找到需要在正则表达式中使用 .* 的解释。例如,MSDN建议密码正则表达式
@\"(?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,})"
对于长度 >= 6、1+ 数字和 1+ 特殊字符。
为什么我不能只使用:
@\"(?=.{6,})(?=(\d){1,})(?=(\W){1,})"
请您参考如下方法:
.* 表示“任意字符的 0 个或多个”
分为两部分:
.- “点”表示任何字符*- 表示“前面的正则表达式标记的 0 个或多个实例”
在您上面的示例中,这很重要,因为他们想要强制密码包含一个特殊字符和一个数字,同时仍然允许所有其他字符。例如,如果您使用 \d 而不是 .*,那么这会将正则表达式的该部分限制为仅匹配十进制字符 (\d 是 [0-9] 的简写,表示任意小数)。同样,\W 而不是 .*\W 会导致该部分仅匹配非单词字符。
可以在此处的 MSDN 上找到包含许多这些 .NET 标记的很好引用:Regular Expression Language - Quick Reference
此外,如果您真的想深入研究正则表达式,请查看 http://www.regular-expressions.info/ .虽然有时很难在该网站上找到您要查找的内容,但它是我在网上看到的最完整、最适合初学者的正则表达式引用之一。
