Skip to main content
 首页 » 编程设计

c#之.* 在正则表达式中做什么

2024年01月13日35bhlsheji

经过大量搜索,我无法找到需要在正则表达式中使用 .* 的解释。例如,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/ .虽然有时很难在该网站上找到您要查找的内容,但它是我在网上看到的最完整、最适合初学者的正则表达式引用之一。