Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 验证版本号的正则表达式_C#_Regex - Fatal编程技术网

C# 验证版本号的正则表达式

C# 验证版本号的正则表达式,c#,regex,C#,Regex,我需要一个正则表达式来验证版本号 我有4种版本号: 2015.1 2015.1.01 2015.1.01.1 2015.1.01.1.RE 第一组:我只需要4个数字 第2组#:正好1个数字 第3组:(1-2)个数字 第4组:(1-4)个数字 第5组:只需RE 我已经尝试了^(\d+\)?(\d+\)、(\d+\)、(\d+\)、(\w+$,但不起作用 string Expressao = @"^(\d+\.)?(\d+\.)?(\d+\.)?(\d+\.)?(\w+)$"; Regex Re

我需要一个正则表达式来验证版本号

我有4种版本号:

  • 2015.1
  • 2015.1.01
  • 2015.1.01.1
  • 2015.1.01.1.RE

  • 第一组:我只需要4个数字

  • 第2组#:正好1个数字
  • 第3组:(1-2)个数字
  • 第4组:(1-4)个数字
  • 第5组:只需
    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();
我该怎么做?

您的正则表达式必须是

string Expressao = @"^\d{4}\.\d(?:\.\d{1,2}(?:\.\d{1,4}(?:\.RE)?)?)?$";
您的正则表达式必须

string Expressao = @"^\d{4}\.\d(?:\.\d{1,2}(?:\.\d{1,4}(?:\.RE)?)?)?$";

让我们从基础开始

首先,列出五组

  • [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]{4}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,4}.[0-9]{4}.[0-9]{1,2}.[0-9]}.[0-9]{

    这给出了一个有效的答案,但不是很好的答案

    但是知道一点再魔法,你可以创造一个更好的版本。在这里,我链接了选项,将完整版本链接在一起


    ^[0-9]{4}\[0-9](\[0-9]{1,2}(\[0-9]{1,4}(\.RE)?)?$

    让我们从基础开始

    首先,列出五组

  • [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]{4}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,4}.[0-9]{4}.[0-9]{1,2}.[0-9]}.[0-9]{

    这给出了一个有效的答案,但不是很好的答案

    但是知道一点再魔法,你可以创造一个更好的版本。在这里,我链接了选项,将完整版本链接在一起


    ^[0-9]{4}\[0-9](\[0-9]{1,2}(\[0-9]{1,4}(\.RE)?)?$

    OP的正则表达式有什么问题?它本该起作用的,效果很好!谢谢大家!@MarceloNascimento以接受的形式表示感谢。@AvinashRaj答案应该解释你所做的改变以及为什么这些改变是必要的。详细点。对不起,我刚意识到我的第二个版本和你的一样。OP的正则表达式有什么问题?它本该起作用的,效果很好!谢谢大家!@MarceloNascimento以接受的形式表示感谢。@AvinashRaj答案应该解释你所做的改变以及为什么这些改变是必要的。详细点。对不起,我刚意识到我的第二个版本和你的一样。