Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 asp.net 正则表达式中遇到了问题。
我需要验证第 5 个或第 6 个字符是"-".
"-"
例如
3000-4567, 3000-4568这个字符串是 , 分隔的,还有一个连字符。我只需要检查每个逗号分隔的字符串是否有第 5 个或第 6 个字符作为"-".
3000-4567, 3000-4568
系统中当前使用的正则表达式是 ^((\s*\d{4,4}\s*[,]){1,3}?)?(\s*\d{4,4})*$
^((\s*\d{4,4}\s*[,]){1,3}?)?(\s*\d{4,4})*$
目前它正在验证 3000,4567
3000,4567
我对你的正则表达式做了两个小改动:
'^((\s*\d{4,5}\s*[/-]){1,3}?)?(\s*\d{4,4})*$'
将第一个数字组的基数更改{4,5}为允许 5 位数字(我猜这是您想要的,因为破折号可以是第六个字符)并将分隔符更改为破折号。请注意斜线以将其转义,因为在方括号中,破折号是一个特殊字符(尽管您可能不需要括号)。
{4,5}
作为替代方案,考虑split在实例上使用字符串-,然后验证拆分的块。那应该容易得多。
split
-