Asp.net 正则表达式验证是否为第5或第6个字符_&引用;

Asp.net 正则表达式验证是否为第5或第6个字符_&引用;,asp.net,regex,Asp.net,Regex,我面临asp.net正则表达式中的问题 我需要验证第5个或第6个字符是否为“-” 比如说 3000-4567、3000-4568此字符串是分隔的,并且带有连字符。我只需要检查每个逗号分隔的字符串是否有第5个或第6个字符作为“-” 系统中使用的当前正则表达式为 ^((\s*\d{4,4}\s*[,]){1,3}?(\s*\d{4,4})*$ 目前它正在验证30004567我对您的正则表达式做了两个细微的更改: '^((\s*\d{4,5}\s*[/-]){1,3}?)?(\s*\d{4,4})*$

我面临asp.net正则表达式中的问题

我需要验证第5个或第6个字符是否为
“-”

比如说

3000-4567、3000-4568
此字符串是分隔的,并且带有连字符。我只需要检查每个逗号分隔的字符串是否有第5个或第6个字符作为
“-”

系统中使用的当前正则表达式为
^((\s*\d{4,4}\s*[,]){1,3}?(\s*\d{4,4})*$


目前它正在验证
30004567

我对您的正则表达式做了两个细微的更改:

'^((\s*\d{4,5}\s*[/-]){1,3}?)?(\s*\d{4,4})*$'
将第一个数字组的基数更改为
{4,5}
,以允许5位数字(我猜这是您想要的,因为破折号可以是第六个字符),并将分隔符更改为破折号。请注意要转义的斜杠,因为在方括号中,破折号是一个特殊字符(尽管您可能不需要括号)

作为备选方案,考虑<代码>拆分< /代码>在“代码> -<代码>的实例上的字符串,然后验证分割的块。这应该容易得多