1

假设我在一个属性中得到了这个 AB_1.2.3.112211

我想要的是交换第一个“。” 到“_”

所以它变成 AB_1_2.3.112211 前两个字符可能更长 fx ABCD_1.2.3.112211 但它仍然应该是输出 ABCD_1_2.3.112211

有没有办法在 msbuild 任务中做到这一点?

4

1 回答 1

5

如果输入字符串始终如您所见,即第一个“。” 替换在下划线后跟数字之后,您可以使用属性函数并使用 C# 的静态 Regex.Replace 方法:

<Target Name="Repl">
  <PropertyGroup>
    <Prop>ABCD_1.2.3.112211</Prop>
  </PropertyGroup>
  <Message Text="$([System.Text.RegularExpressions.Regex]::Replace( $(Prop), '_(\d*)\.', '_$1_' ) )" />
</Target>

如果用例更复杂,还有其他选择:

于 2013-12-21T11:44:00.993 回答