Skip to main content
 首页 » 编程设计

c#之为什么这个正则表达式匹配

2024年01月18日34三少

我写了一个正则表达式来匹配以下条件

  • 任何数字 (0-9)
  • 连字符
  • 空格
  • 以任意顺序
  • 长度在 10 到 25 之间

([0-9\-\w]{10,25})

我用它来检测支付卡号,所以它有效:

Regex.IsMatch("34343434343434", "([0-9\\-\\w]{10,25})"); // true 

但这也有效:

Regex.IsMatch("LogMethodComplete", "([0-9\\-\\w]{10,25})"); // true 

我做错了什么?

这是 C#

请您参考如下方法:

看看Regular Expression Language - Quick Reference , 字符类部分。

\w 匹配任何单词字符,包括下划线,不包括空格。

要匹配空格,可以使用\s。

要匹配数字,可以使用\d。