正则表达式匹配不以x.y开头的版本号

时间:2012-08-21 00:06:44

标签: regex msbuild regex-negation

我正在尝试在AssemblyInfo.cs文件中找到不以我正在构建的Major.Minor数字开头的版本号。我尝试了各种版本,但它没有做我想做的事 - 任何人都可以帮助我的RegEx吗?

        <MSBuild.ExtensionPack.FileSystem.File Condition="'$(BuildNumber)' != ''"
                                           TaskAction="Replace"
                                           RegexPattern="Version\(\&quot;(?:![$(VersionMajor).$(VersionMinor)])\d\.\d\.\d\.\d)\&quot;\)"
                                           Replacement="Version(&quot;$(VersionMajor).$(VersionMinor).0.0&quot;)"
                                           Files="$(AssemblyInfoFiles)" />

请注意,我在扩展包中使用AssemblyInfo类,但上面是用于初始设置。

修改 这是我在@ Omega的帮助下使用的工作版本。请注意,我正在使用我已经拥有的VersionMajorMinor属性。

        <!-- Update all the assembly info files with generated version info -->
    <MSBuild.ExtensionPack.FileSystem.File TaskAction="Replace"
                                           RegexPattern="Version\(\&quot;(?!$(VersionMajorMinor)\.)\d+\.\d+\.\d+\.\d+\&quot;\)"
                                           Replacement="Version(&quot;$(VersionMajorMinor).0.0&quot;)"
                                           Files="@(AssemblyInfoFiles)" />

1 个答案:

答案 0 :(得分:0)

尝试Version\(\&quot;(?!$(VersionMajor)\.$(VersionMinor)\.)\d+\.\d+\.\d+\.\d+\&quot;\)