Упомянутый пример фактически заменит содержимое.Таким образом, он может получить неправильный вывод при поиске совпадений текста с текстом с заглавными буквами .Поэтому может быть полезно использовать indexOf и Insert вместо Replace.
Вот как.
Private Sub WebBrowser_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser.DocumentCompleted
Dim doc2 As mshtml.IHTMLDocument2 = WebBrowser.Document.DomDocument
Dim ReplacementTag As String = "<span style='background-color: rgb(255, 255, 0);'>"
Dim strBuilder As StringBuilder = New StringBuilder(doc2.body.outerHTML)
Dim HTMLString As String = strBuilder.ToString()
If Me.m_NoteType = ExtractionNoteType.SearchResult Then
Dim SearchWords As New List(Of String)
SearchWords.AddRange(Me.txtNoteSearch.Text.Trim.Split(" "))
For Each item As String In SearchWords
Dim index As Integer = HTMLString.IndexOf(item, 0, StringComparison.InvariantCultureIgnoreCase)
''If index > 0 Then
While (index > 0 AndAlso index < HTMLString.Length)
HTMLString = HTMLString.Insert(index, ReplacementTag)
HTMLString = HTMLString.Insert(index + item.Length + ReplacementTag.Length, "</span>")
index = HTMLString.IndexOf(item, index + item.Length + ReplacementTag.Length + 7, StringComparison.InvariantCultureIgnoreCase)
End While
''End If
''strBuilder.Replace(item, "<span style='background-color: rgb(255, 255, 0);'>" + item + "</span>")
Next
Else
''strBuilder.Replace("<span style='background-color: rgb(255, 255, 0);'>", "<span style='background-color: rgb(255, 255, 255);'>")
End If
doc2.body.innerHTML = HTMLString
End Sub