字串中尋找關鍵字片段

字串中尋找關鍵字片段

利用 RegEx 可以很方便的做字串處理,若我們需要從一篇文章中擷取出關鍵字片段(含前後文),可以利用下列的 FindKeywordParts 函式來處理,搜尋到的關鍵字片段的字串集合會以 List(Of String) 型別傳回。

 

    ''' <summary>
    ''' 由字串中尋找關鍵字片段。
    ''' </summary>
    ''' <param name="Text">字串。</param>
    ''' <param name="Keyword">關鍵字。</param>
    ''' <param name="BLength">包含關鍵字前的字元數。</param>
    ''' <param name="ALength">包含關鍵字後的字元數。</param>
    ''' <returns>傳回符合的關鍵字片段的字串集合。</returns>
    Public Shared Function FindKeywordParts( _
        ByVal Text As String, _
        ByVal Keyword As String, _
        ByVal BLength As Integer, _
        ByVal ALength As Integer) As List(Of String)

        Dim sPattern As String
        Dim oRegEx As Regex
        Dim oMatchs As MatchCollection
        Dim oMatch As Match
        Dim oList As New List(Of String)

        '比對規則
        sPattern = String.Format(".{{0,{1}}}{0}.{{0,{2}}}", Keyword, BLength, ALength)
        oRegEx = New Regex(sPattern)

        oMatchs = oRegEx.Matches(Text)
        For Each oMatch In oMatchs
            oList.Add(oMatch.Value)
        Next
        Return oList
    End Function

假設我們要找一篇文章中,包含「連胡會」這個關鍵字片段,並包含關鍵字前後文各10個字元,程式碼如下

        Dim sText As String = "宋胡會可望談兩岸政治定位【吳燕玲╱台北報導】連胡會之後國民黨單獨召開記者會,以新聞公報的形式發布五大共識,親民黨中央昨天不願對連胡會發表看法"
        Dim oList As List(Of String)
        oList = FindKeywordParts(sText, "連胡會", 10, 10)

 

參考網址:http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080827120329VEH&fumcde=FUM20041006161839LRJ&rplcnt=5

ASP.NET 魔法學院