vb.net正则表达式

2025-01-06 05:02:51
推荐回答(1个)
回答1:

Imports System.Text.RegularExpressions
Public Class Form1
    Public Function MadeRegexArray(ByVal strText As String, ByVal strRegx As String, ByVal rexOpt As RegexOptions, ByVal Groups As Integer) As String()
        REM 正则结果直接以字符串组形式返回
        REM strHtml待搜索的字符串
        REM strRegx正则表达式
        REM rexOpt正则选项
        On Error Resume Next
        Return MadeMatchString(MadeRegexMatch(strText, strRegx, rexOpt), Groups)
    End Function
    Public Function MadeMatchString(ByVal mc As MatchCollection, ByVal Groups As Integer) As String()
        REM 把MatchCollection以字符串组形式保存
        REM mc正则匹配的集合
        REM 返回字符串组
        On Error Resume Next
        Dim strRegCode(mc.Count) As String
        For i As Integer = 0 To mc.Count - 1
            strRegCode(i) = mc(i).Groups(Groups).Value
        Next i
        Return strRegCode
    End Function
    Public Function MadeRegexMatch(ByVal strText As String, ByVal strRegex As String, ByVal rexOpt As RegexOptions) As MatchCollection
        REM 获取正则表达式匹配的集合
        REM strHtml待正则的字符串
        REM strRegex正则表达式
        REM rexOpt正则选项
        REM 返回 MatchCollection 类型集合
        On Error Resume Next
        Dim rex As Regex = New Regex(strRegex, rexOpt)
        Return rex.Matches(strText)
    End Function
    Public Function MadeRegexReplace(ByVal sText As String, ByVal sRegex As String, ByVal sReplace As String) As String
        REM 正则表达式文本替换
        REM sText原文本
        REM sRegex表达式
        REM sReplace替换文本
        On Error Resume Next
        Dim rex As Regex = New Regex(sRegex, RegexOptions.IgnoreCase)
        Return rex.Replace(sText, sReplace)
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        On Error Resume Next
        Dim sRegex As String = ">([\s\S]*?)<"
        Dim aTable() As String = MadeRegexArray(TextBox1.Text, sRegex, RegexOptions.IgnoreCase, 1)
        For i As Integer = 0 To aTable.Length - 1
            TextBox2.Text = TextBox2.Text & aTable(i)
        Next i
    End Sub
End Class

如图: