我需要一个正则表达式来验证版本号。
我有4种版本号:
2015.1
2015.1.01
2015.1.01.1
2015.1.01.1.RE
第1组#:我需要4个数字
RE
我已经尝试^(\d+\.)?(\d+\.)?(\d+\.)?(\d+\.)?(\w+)$
,但无法正常工作。
string Expressao = @"^(\d+\.)?(\d+\.)?(\d+\.)?(\d+\.)?(\w+)$";
Regex Reg = new Regex(Expressao);
foreach(string rotulo in rotulos)
{
Match result = Reg.Match(rotulo);
if (result.Success)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(string.Format("Sucesso! {0}", rotulo), ConsoleColor.Green);
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(string.Format("Falha! {0}", rotulo), ConsoleColor.Green);
}
}
Console.ReadKey();
我该怎么做?
答案 0 :(得分:1)
答案 1 :(得分:1)
让我们从基础开始。
首先,列出五组
[0-9]{4}
[0-9]
[0-9]{1,2}
[0-9]{1,4}
RE
接下来,列出四种变体
[0-9]{4}\.[0-9]
[0-9]{4}\.[0-9]\.[0-9]{1,2}
[0-9]{4}\.[0-9]\.[0-9]{1,2}\.[0-9]{1,4}
[0-9]{4}\.[0-9]\.[0-9]{1,2}\.[0-9]{1,4}\.RE
最后,把它们放在一起。
^([0-9]{4}\.[0-9]|[0-9]{4}\.[0-9]\.[0-9]{1,2}|[0-9]{4}\.[0-9]\.[0-9]{1,2}\.[0-9]{1,4}|[0-9]{4}\.[0-9]\.[0-9]{1,2}\.[0-9]{1,4}\.RE)$
这给出了一个有效的答案,但不是一个非常好的答案。
但是知道一点RE魔法,你可以创造一个更好的版本。在这里,我将选项链接在一起,将完整版本链接在一起。
^[0-9]{4}\.[0-9](\.[0-9]{1,2}(\.[0-9]{1,4}(\.RE)?)?)?$