0

我在 asp.net 正则表达式中遇到了问题。

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

例如

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

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

目前它正在验证 3000,4567

4

1 回答 1

1

我对你的正则表达式做了两个小改动:

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

将第一个数字组的基数更改{4,5}为允许 5 位数字(我猜这是您想要的,因为破折号可以是第六个字符)并将分隔符更改为破折号。请注意斜线以将其转义,因为在方括号中,破折号是一个特殊字符(尽管您可能不需要括号)。

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

于 2013-05-10T08:27:54.750 回答