我在asp.net正则表达式中面临问题。
我需要验证第5或第6个字符是"-"
。
例如
3000-4567, 3000-4568
此字符串是分隔的,并且还有一个连字符。我只需要检查每个逗号分隔的字符串是否有第5个或第6个字符作为"-"
。
系统中使用的当前正则表达式是
^((\s*\d{4,4}\s*[,]){1,3}?)?(\s*\d{4,4})*$
目前正在验证3000,4567
答案 0 :(得分:1)
我对你的正则表达式进行了两处小改动:
'^((\s*\d{4,5}\s*[/-]){1,3}?)?(\s*\d{4,4})*$'
将第一个数字组的基数更改为{4,5}
以允许5位数字(我猜这是你想要的,因为破折号可以是第六个字符)并将分隔符更改为破折号。注意斜杠是为了逃避它,因为在方括号中,破折号是一个特殊字符(你可能不需要那里的括号)。
作为替代方案,请考虑split
-
实例上的字符串,然后验证已拆分的块。这应该会容易得多。