1

使用 MSBuild 计算字符(在我的情况下为“\”)出现在字符串中的次数的最简单方法是什么?我尝试使用 Split( \) 无济于事。

4

2 回答 2

4

MsBuild 4.0 允许使用属性函数http://msdn.microsoft.com/en-us/library/dd633440.aspx

您可以使用它来拆分字符串。然后,您必须将长度减去 1 以获得出现次数。

<Target Name="SplitCount">
    <PropertyGroup>
        <path>test\document\home</path>
    </PropertyGroup>

    <PropertyGroup>
        <test>$(path.Split('\').length)</test>
    </PropertyGroup>

    <Message Text="occurrence count: $([MSBuild]::Subtract($(test), 1))"><Message>        
</Target>
于 2012-10-30T17:13:47.540 回答
1

MSBuild Community Tasks中,有一个 RegexMatch 任务可以为您提供一个列表,然后您可以计算该列表。

另一种选择是编写您自己的自定义任务。然后像这样添加一些Linq:

string input = "This \\ is \\ a \\ test";
var items = (from c in input where c == '\\' select c).ToList();
var count = items.Count;
于 2012-10-30T15:59:51.073 回答