在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;

但它也会计算像"我的电脑"这样错误的字符串。

在HTML文件中查找字符串的确切位置

这是一个使用正则表达式的完美地方,就像你标记你的帖子一样:

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;
    }