在HTML文件中查找字符串的确切位置
本文关键字:位置 字符串 查找 HTML 文件 | 更新日期: 2023-09-27 18:19:59
我想找到字符串的精确匹配计数假设字符串是"我的电脑"。我想在字符串中找到它的出现
这是我的电脑,这是一台好电脑,
这是我电脑,这就是我电脑
所以最后我会得到计数2,
我尝试了以下公式,并将"mykeyWord"作为要查找的字符串。
int strength = (innerDocument.DocumentNode.InnerText.Length - innerDocument.DocumentNode.InnerText.ToLower().Replace(mykeyWord.ToLower(), "").Length) / mykeyWord.Length;
但它也会计算像"我的电脑"这样错误的字符串。
这是一个使用正则表达式的完美地方,就像你标记你的帖子一样:
Regex re = new Regex("''b" + Regex.Escape(mykeyWord) + "''b", RegexOptions.IgnoreCase);
int count = re.Matches(innerDocument.DocumentNode.InnerText).Count;
您可以使用正则表达式[^A-z](my computer)[^A-z]
This匹配"my computer",但如果它在"A to Z"之前或之后,则不能匹配。要使正则表达式搜索不区分大小写,请使用RegexOptions.IgnoreCase
。
编辑minitech使用单词边界的答案更好。
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;
}