投稿者 shu  (社会人) 投稿日時 2012/2/23 17:34:48
rtf構文は調べてないのでイメージだけですが以下のような感じで出来ると思います。

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim reg As New Regex("<(?<tagName>.+?)( (?<attrName>.+?)=(?<attrValue>.+?))*>")

        TextBox2.Text = reg.Replace(TextBox1.Text, AddressOf MatchEval)
    End Sub

    Private Function MatchEval(m As Match) As String
        Dim strRet As New System.Text.StringBuilder

        strRet.Append("<")
        strRet.Append(m.Groups("tagName").Value)

        Dim capAttrName = m.Groups("attrName").Captures()
        Dim capAttrValue = m.Groups("attrValue").Captures()
        Dim intIdx = 0

        Do While intIdx < capAttrName.Count
            strRet.Append(" ")
            strRet.AppendFormat("[blue:{0}]", capAttrName(intIdx).Value)
            strRet.Append("=")
            strRet.AppendFormat("[red:{0}]", capAttrValue(intIdx).Value)
            intIdx += 1
        Loop

        strRet.Append(">")

        Return strRet.ToString
    End Function