RegEx - Code Problem

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Phil5038.

    RegEx - Code Problem

    Hey bin neu hier und hab mich ein wenig mit RegEx beschäftigt.
    Nun habe ich mal probiert aus

    Quellcode

    1. <strong>Tel. : +49&nbsp;(0)176&nbsp;25806413</strong>

    das

    Quellcode

    1. Tel. : +49&nbsp;(0)176&nbsp;25806413
    zu filtern und es in einer Messagebox ausgeben zu lassen.
    Nur ist in der besagten Message dann nichts enthalten.

    Der Code:

    VB.NET-Quellcode

    1. Dim numRegEx As New Regex("<strong>(.*?)</strong>")
    2. Dim num As String = numRegEx.Match(RichTextBox1.Text).Groups("string").ToString()
    3. MsgBox(num)


    Liegt es am "filtercode" oder habe ich einen anderen Fehler gemacht ?

    Mfg. Phil
    Schau mal hier.

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Text.RegularExpressions
    3. Public Class Form1
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. Dim x As String = "<strong>Tel. : +49&nbsp;(0)176&nbsp;25806413</strong>"
    6. Dim r As New Regex("<strong>(?<text>(.*?))</strong>")
    7. Dim m As Match = r.Match(x)
    8. MessageBox.Show(m.Groups("text").Value)
    9. End Sub
    10. End Class
    Ich hatte mal ne Funktion für sowas gemacht, die sogar das escapen abnimmt:

    VB.NET-Quellcode

    1. Public Function SearchBetweenRegex(input As String, starttag As String, endtag As String) As List(Of String)
    2. Dim SearchRegex As New Regex(String.Format("{0}{1}{2}", Regex.Escape(starttag), "(?<text>(.*?))", Regex.Escape(endtag)))
    3. Dim ReturnList As New List(Of String)
    4. For Each m As Match In SearchRegex.Matches(input)
    5. ReturnList.Add(m.Groups("text").Value)
    6. Next
    7. Return ReturnList
    8. End Function

    Damit geht es auf jeden Fall.
    Benutzungsbeispiel:

    VB.NET-Quellcode

    1. For Each s As String In SearchBetweenRegex("<strong>Tel. : +49&nbsp;(0)176&nbsp;25806413</strong>", "<strong>", "</strong>")
    2. MessageBox.Show(s)
    3. Next