c#正则表达式0-9和破折号
我有一个信用卡号码,我需要检查它是否有0-9之间的数字和任何破折号 我有以下资料:c#正则表达式0-9和破折号,c#,regex,C#,Regex,我有一个信用卡号码,我需要检查它是否有0-9之间的数字和任何破折号 我有以下资料: Match match = Regex.Match(CardNumber, "[0-9-]"); if (match.Success) { } 它可以工作,但我想知道我是否错过了任何可能不起作用的东西 谢谢现在它只检查字符串卡号中是否至少有一个数字或破折号,因此它将为字符串返回True“hello0!” 如果要验证字符串,使其仅由数字和破折号组成,则需要使用 Match
Match match = Regex.Match(CardNumber, "[0-9-]");
if (match.Success)
{
}
它可以工作,但我想知道我是否错过了任何可能不起作用的东西
谢谢现在它只检查字符串
卡号
中是否至少有一个数字或破折号,因此它将为字符串返回True
“hello0!”
如果要验证字符串,使其仅由数字和破折号组成,则需要使用
Match match = Regex.Match(CardNumber, @"^[0-9-]*$");
作为@Tim所写内容的一个小提示,他的正则表达式将匹配
-12--34-
。也许你想要的是:
^([0-9]+-)*[0-9]+$
这至少需要一个数字。如果希望空字符串匹配,请使用
^([0-9]+-)*[0-9]*$
(0个或多个由一个或多个数字组成的“组”加上一个
-
和最后一个“组”数字)您可能应该详细说明一下您的要求。这个问题现在很模糊。。。