我编写了一个符合以下条件的正则表达式
([0-9 \ - \ W] {10,25})
我用它来检测支付卡号码,所以这有效:
Regex.IsMatch("34343434343434", "([0-9\\-\\w]{10,25})"); // true
但这也有效:
Regex.IsMatch("LogMethodComplete", "([0-9\\-\\w]{10,25})"); // true
我做错了什么?
这是C#
答案 0 :(得分:8)
查看Regular Expression Language - Quick Reference,字符类的部分。
\w
匹配任何单词字符,包括下划线,而不是空格。
要匹配空格,您可以使用\s
。
要匹配数字,您可以使用\d
。
答案 1 :(得分:2)
您可以使用\w
而不是\d
,这意味着数字可以使用正则表达式
"[\d\-\s]{10,25}" to match your criteria
您无需检查“字词”,这就是\w
所做的