[英]Regular expression to validate string format to specific length with csv
我正在尝试编写一个正则表达式来验证文本框是否只有长度为5或9的数字。我找到了以下正则表达式来完成此操作
^\d{1,5}([,]\d{5})*$
但是它不能正确地满足我的要求,任何人都可以帮助我修改或编写支持以下模式的新正则表达式。
请尝试以下操作:
var lines = new []
{
"09103,09101,",
"09103,09101",
"12345,1234567",
"12345,123456789",
"12345"
};
var re = new Regex(@"^\d{1,5}(,(\d{5}|\d{9}))?,?$");
foreach (var line in lines)
{
Console.WriteLine("{0} = {1}", line, re.IsMatch(line) ? "Valid" : "Invalid");
}
产量
09103,09101, = Valid
09103,09101 = Valid
12345,1234567 = Invalid
12345,123456789 = Valid
12345 = Valid
您可以在此处运行它: C#小提琴
尝试一下,以获取确切的测试用例。
^\d{5},?$|^\d{5},\d{5},?$|^\d{5},\d{9},?$
它使用|
字符以分隔“替代”模式,将其读取为“或”。 即
^\d{5}$ OR ^\d{5},\d{5}$ OR ^\d{5},\d{9}$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.