更改版本中的第4个数字

时间:2018-11-13 01:55:16

标签: c# regex

我有一个简单的程序,可以将第三个数字更改为如下所示的程序集版本文件

 static void Main()
{
    string file = "AssemblyInfo.cs";
    if (File.Exists(file))
        File.WriteAllText(file,
            Regex.Replace(
                File.ReadAllText(file),
                @"(?<=\[assembly: AssemblyFileVersion\(""[0-9]*.[0-9]*.)[0-9]*(?=.[0-9]*""\)\])",
                m => (Convert.ToInt16(m.Value) + 1).ToString()
            )
        );
    }
}

我想做的是改为更改该版本的第4个数字。  例如,我想通过调用c#app将1.3.4.9更改为1.3.4.10。

问题是我无法获取正则表达式来进行选择和更新。我尝试使用这种方法是有原因的,所以我想知道如何更新reg。使用c#代码本身的ex或其他方法,而不是对其他方法提出建议。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式:

@"(?<=\[assembly: AssemblyFileVersion\(""[0-9]*\.[0-9]*\.[0-9]*\.)[0-9]*(?=""\)\])"

基本上,它与您当前的正则表达式相同,只是它更改为与第4个数字匹配。它一直在寻找前三个数字,然后匹配第四个数字,并期待“ ")]”。

您现在应该可以用新号码代替。

顺便说一句:您可以将'[0-9]'替换为'\d',如果您更喜欢的话。