c#中的拆分功能

时间:2013-07-09 07:34:55

标签: c# split-function

我有一个接受网址的程序(例如:care.org),获取网址的页面来源并进行一些计算。

  string text = <the page source of care.org>
  string separator = "car";
  var cnt = text.ToLower().Split(separator,StringSplitOptions.None);

我的目标是计算&#34;汽车的出现次数&#34;在页面源中, 我的代码认为关心是&#39; |&#39; e&#39;它以这种方式分裂..但我希望它将整个分离器视为一个并进行分离

请帮我解决这个问题

4 个答案:

答案 0 :(得分:1)

您应该使用正则表达式而不是split()方法:

Regex regex = new Regex(@"\bcar\b"); // you should modify it if `car's` needed

Match match = regex.Match(text);
int cnt = 0;

while (match.Success)
{
   cnt++;
   match = match.NextMatch();
}

// here you get count of `car` in `cnt`

答案 1 :(得分:1)

这是如何使用RegularExpressions实现您想要的:

string text = "the page source of care.org";
string separator = @"\bcar\b";
MatchCollection resultsarray = Regex.Matches(text, separator);

现在resultsarray包含您的匹配项。您可以使用

计算它
resultsarray.Count

答案 2 :(得分:0)

Split返回一个字符串数组,你可以只计算结果。

var cnt = text.ToLower().Split(separator,StringSplitOptions.None).count;

答案 3 :(得分:0)

我认为你不需要拆分,因为你不打算对子串做任何事情。你只想要一个计数,所以请用RegEx.Matches(text, "car[^a-zA-Z0-9]")或类似来定义你感兴趣的模式。祝你好运!