计算MSBuild中字符串中的字符出现次数

时间:2012-10-30 15:38:36

标签: string msbuild msbuild-4.0

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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;