1
可以說我在物業中得到了這個AB_1.2.3.112211替換屬性中的一個標誌
我想要的是交換第一個「。」到「_」
,使其成爲AB_1_2.3.112211 的兩個第一字符可能會更長FX ABCD_1.2.3.112211,但它仍然應該輸出ABCD_1_2.3.112211
有沒有辦法做到這一點在MSBuild任務?
可以說我在物業中得到了這個AB_1.2.3.112211替換屬性中的一個標誌
我想要的是交換第一個「。」到「_」
,使其成爲AB_1_2.3.112211 的兩個第一字符可能會更長FX ABCD_1.2.3.112211,但它仍然應該輸出ABCD_1_2.3.112211
有沒有辦法做到這一點在MSBuild任務?
如果輸入字符串始終如您所示,即第一個「。」更換自帶下劃線後跟一個號碼後,您可以使用一個property function,並使用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>
如果用例是比較複雜的還有其他選擇:
良好的信息,但沒有任何與C#。 'Regex.Replace'是.NET的[Base Class Library](http://en.wikipedia.org/wiki/Base_Class_Library)中的一種方法;語法是所有的「MSBuild語言」。 BCL文檔顯示了各種語言的使用語法,但不幸的是,對於MSBuild而言則不是。 「屬性函數」中提供的鏈接確實給出了一般的MSBuild語法。 –