我有一个接受网址的程序(例如: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;它以这种方式分裂..但我希望它将整个分离器视为一个并进行分离
请帮我解决这个问题
答案 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]")
或类似来定义你感兴趣的模式。祝你好运!