在AssemblyInfo.cs文件中有这样一个字符串:
我正在使用这个模式来尝试获取数字:
然而,当我使用这段代码时,结果并不如预期,相反它显示了完整的字符串,就好像它是真正匹配而不是每个组中的数字。
在这种情况下,
[assembly: AssemblyVersion("1.0.0.1")]
。我正在尝试逐个提取其中的数字,每个数字都是以下结构中的一个变量。static struct Version
{
public static int Major, Minor, Build, Revision;
}
我正在使用这个模式来尝试获取数字:
string VersionPattern = @"\[assembly\: AssemblyVersion\(""(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})""\)\]";
然而,当我使用这段代码时,结果并不如预期,相反它显示了完整的字符串,就好像它是真正匹配而不是每个组中的数字。
Match match = new Regex(VersionPattern).Match(this.mContents);
if (match.Success)
{
bool success = int.TryParse(match.Groups[0].Value,Version.Major);
...
}
在这种情况下,
this.mContents
是从文件中读取的整个文本,match.Groups[0].Value
应该是 AssemblyVersion 中的 "1"。
我的问题是如何使用正则表达式逐个检索这些数字。
这个小工具是为了在 Visual Studio 每次构建应用程序时增加应用程序版本号,我知道有很多工具可以做到这一点。