正则表达式验证第5或第6个字符“_”

时间:2013-05-10 08:13:04

标签: asp.net regex

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

我需要验证第5或第6个字符是"-"

例如

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

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

目前正在验证3000,4567

1 个答案:

答案 0 :(得分:1)

我对你的正则表达式进行了两处小改动:

'^((\s*\d{4,5}\s*[/-]){1,3}?)?(\s*\d{4,4})*$'

将第一个数字组的基数更改为{4,5}以允许5位数字(我猜这是你想要的,因为破折号可以是第六个字符)并将分隔符更改为破折号。注意斜杠是为了逃避它,因为在方括号中,破折号是一个特殊字符(你可能不需要那里的括号)。

作为替代方案,请考虑split -实例上的字符串,然后验证已拆分的块。这应该会容易得多。