C# 用于验证分隔符分隔的数字的正则表达式
我需要一个正则表达式来用这些值验证表单的输入 例如:C# 用于验证分隔符分隔的数字的正则表达式,c#,regex,asp.net-mvc-3,C#,Regex,Asp.net Mvc 3,我需要一个正则表达式来用这些值验证表单的输入 例如: 123, 444,231, 2231 ... 对于这个循环,正则表达式的最佳方式是什么?如果我正确理解了您的问题,您想在数字上进行匹配吗 使用以下命令: ([0-9]{1,}+){1,} 这将匹配每个值。我可以向您建议以下内容。 ^(\s*\d+\s*,?)+$它考虑了CSV值的前导空格和尾随空格的可能性 编辑 我修改了表达式,这是新版本:^(\s*\d+\s*,)*(\s*\d+\s*){1}$在注释的情况下不会失败。需求的规范有点模糊
123, 444,231, 2231 ...
对于这个循环,正则表达式的最佳方式是什么?如果我正确理解了您的问题,您想在数字上进行匹配吗 使用以下命令:
([0-9]{1,}+){1,}
这将匹配每个值。我可以向您建议以下内容。
^(\s*\d+\s*,?)+$
它考虑了CSV值的前导空格和尾随空格的可能性
编辑
我修改了表达式,这是新版本:
^(\s*\d+\s*,)*(\s*\d+\s*){1}$
在注释的情况下不会失败。需求的规范有点模糊,但这可能是您想要的:
([1-9]\d{2,3},\s*) //first one digit 1-9, followed by 2 to 3 other digits,a comma and zero or one whitespace
{0,} //This pattern may occour 0 or more times, followed by...
([1-9]\d{2,3}) // one of these number without the trailing comma, only once.
^(\s*\d+\s*(?(?=,\s*\d),|))+$
它验证了以“,”分隔的数字序列,允许前导和尾随的白色字符,而不是以“,”开头和结尾。你能澄清你的问题吗?值应该采用什么格式?但是,就我个人而言,我不会使用正则表达式。C#有一种基于字符串分隔符的本机拆分方法,在本例中是逗号。@Tomek,这是因为他没有给出任何数字之间没有逗号的示例。([1-9]\d{2,3}\s*,\s)将起作用。它也不能处理多个空间,因为在给出的示例中没有。相应地改变。