使用RegEx从AssemblyInfo文件中读取AssemblyInformationalVersion值

时间:2012-12-28 17:50:41

标签: regex visual-studio msbuild

我正在尝试使用msbuild从AssemblyInfo文件中读取AssemblyInformationalVersion,但到目前为止我失败了。下面的一个给我数字,但我需要在引号内输入:

                

<PropertyGroup>
  <Pattern>\[assembly: AssemblyInformationalVersion\(.(\d+)\.(\d+)\.(\d+)</Pattern>
  <In>@(ItemsFromFile)</In>
  <Out>$([System.Text.RegularExpressions.Regex]::Match($(In), $(Pattern)))</Out>
</PropertyGroup>

<Message Text="Output : $(Out.Remove(0, 41))"/>

这是目标行,例如:

[assembly: AssemblyInformationalVersion("0.3.0-pre01")]

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果你只需要引号的内容,你应该能够用这样的表达式抓住它:

(?<=\[assembly: AssemblyInformationalVersion\(").*(?="\)\])

我认为你可以在msbuild正则表达式中使用正向前瞻/后瞻。

积极前瞻和后瞻:

Match this(?=Where this is present ) (?<=Where this is present )Match this