C# 为什么这个正则表达式匹配?
我已经编写了一个正则表达式来匹配以下条件C# 为什么这个正则表达式匹配?,c#,regex,C#,Regex,我已经编写了一个正则表达式来匹配以下条件 任意数字(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
- 任意数字(0-9)
- 连字符
- 空白
- 以任何顺序
- 长度在10到25之间
Regex.IsMatch("34343434343434", "([0-9\\-\\w]{10,25})"); // true
但这同样有效:
Regex.IsMatch("LogMethodComplete", "([0-9\\-\\w]{10,25})"); // true
我做错了什么
这是C#请看一看,部分字符类
\w
匹配任何单词字符,包括下划线,而不是空格
要匹配空白,可以使用\s
要匹配数字,可以使用\d
查看节字符类
\w
匹配任何单词字符,包括下划线,而不是空格
要匹配空白,可以使用\s
要匹配数字,您可以使用
\d
而不是\w
您可以使用\d
,这意味着您可以像regex一样使用数字
"[\d\-\s]{10,25}" to match your criteria
您不需要检查“单词”,这就是
\w
所做的而不是使用\w
您可以使用\d
,这意味着您可以像regex一样使用数字
"[\d\-\s]{10,25}" to match your criteria
您不需要检查“单词”,这就是
\w
所做的尝试[0-9\\s-]
,因为\w
是单词。元字符匹配任何“单词字符”。您需要使用\s元字符来匹配任何“空白字符”。请尝试[0-9\\s-]
,因为\w
是word。该\w元字符匹配任何“word字符”。您需要使用\s元字符来匹配任何“空白字符”。您需要将\加倍,并且您可以在类的开头或结尾处放置-以便不必转义。或者您可以使用@
我只是pust regex而不转义;)但是感谢您的通知。您需要将\加倍,并且您可以在类的开头或结尾处放置-以便不必转义。或者您可以使用@
我只使用正则表达式而不转义;)但是谢谢你的通知。