我想找到字符串的完全匹配计数 假设字符串是“我的电脑”。我想找到它,在字符串中出现
这是我的电脑,这是一台好电脑,这是我的电脑,这是我的电脑
所以最后我会得到第2个,
我尝试使用'mykeyWord'作为字符串找到以下公式。
int strength = (innerDocument.DocumentNode.InnerText.Length - innerDocument.DocumentNode.InnerText.ToLower().Replace(mykeyWord.ToLower(), "").Length) / mykeyWord.Length;
但它也会计算像'my Computers'这样的字符串错误。
答案 0 :(得分:4)
这是使用正则表达式的理想场所,就像您标记帖子一样:
Regex re = new Regex("\\b" + Regex.Escape(mykeyWord) + "\\b", RegexOptions.IgnoreCase);
int count = re.Matches(innerDocument.DocumentNode.InnerText).Count;
答案 1 :(得分:1)
您可以使用正则表达式[^A-z](my computer)[^A-z]
这匹配“我的电脑”,但不是“A到Z”之前或之后。要使正则表达式搜索不区分大小写,请使用RegexOptions.IgnoreCase
。
修改强> minitech使用单词边界的答案更好。
答案 2 :(得分:1)
int FindCount(string keyword, string input)
{
if (input.Contains(keyword))
{
int count = 0;
int i = 0;
foreach (var c in input)
{
if (c == keyword[i])
i++;
else
i = 0;
if (i == keyword.Length)
{
i = 0;
count++;
}
}
return count;
}
return 0;
}