代码之家  ›  专栏  ›  技术社区  ›  Jim

从vb2005中的文本搜索中获取索引列表

  •  1
  • Jim  · 技术社区  · 14 年前

    我正在对富文本框中的字符串执行索引搜索,我有一个关键字列表,这些关键字在此文本框中必须是不同的颜色。如何在vb2005中对字符串执行搜索,并获取文本与搜索匹配的索引列表?

    1 回复  |  直到 13 年前
        1
  •  0
  •   Carter Medlin    14 年前

    这是一个相当简单的解决方案。请注意,它将在“四”中找到“我们的”。如果不希望这样做,您可以编写一些内容来消除重叠匹配。

    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim SearchText As String = "One Two Three Four"
    
        Dim Keywords As String() = {"One", "Four", "our"}
    
        Dim WordMatches As New Generic.List(Of WordMatch)
    
        For Each KeyWord As String In Keywords
            Dim i As Int32 = 0
    
            While i <> -1
                i = SearchText.IndexOf(KeyWord, i, System.StringComparison.OrdinalIgnoreCase)
    
                If i <> -1 Then
                    Dim MyMatch As New WordMatch
                    MyMatch.CharIndex = i
                    MyMatch.Word = KeyWord
                    WordMatches.Add(MyMatch)
                    i += KeyWord.Length
                End If
            End While
        Next
    End Sub
    
    Private Structure WordMatch
        Public CharIndex As Int32
        Public Word As String
    End Structure