RegEx Replace Problem

  • VB.NET

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

    RegEx Replace Problem

    Hey,

    und zwar hab ich folgendes Problem.

    ich möchte aus

    HTML-Quellcode

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

    die Nummer herausfiltern, beim ersten Replace sieht das ganze so aus:

    HTML-Quellcode

    1. Tel. : +49(0)17625806413

    doch nach dem zweiten Replace sieht es anstatt so

    Quellcode

    1. 0176....
    immernoch so wie nach dem ersten Replace aus und ich weiß einfach nicht warum.

    Hier der Code

    VB.NET-Quellcode

    1. Private Function filter(ByVal Pattern As String, ByVal Text As String) As String
    2. Dim res As String
    3. Dim rg As New Regex(Pattern)
    4. Text = rg.Match(Text).Value.ToString()
    5. Text = System.Text.RegularExpressions.Regex.Replace(Text, "\&nbsp\;", "", RegexOptions.IgnoreCase)
    6. res = System.Text.RegularExpressions.Regex.Replace(Text, "Tel. : +49(0)", "0", RegexOptions.IgnoreCase)
    7. Return res
    8. End Function


    Pls help :)
    @sonne75
    Wieso nicht einfach alle Zahlen suchen und zusammenfügen ?
    Edit: So vlt. verständlicher.

    VB.NET-Quellcode

    1. 'Der Ausgangstext
    2. Dim input As String = "'<strong>Tel. : +49&nbsp;(0)176&nbsp;25806413</strong>"
    3. 'Erstelle eine neue Collection von Matches, die alle Zahlen aus dem Text zwischen <strong> und </...> enthält.
    4. '(Wenn es mehrere Strong-Tags gibt muss hier statt .Match(), .Matches() genommen werden. Die entstandene MatchCollection muss dann ebenfalls mit einer
    5. 'For-Each-Schleife behandelt werden)
    6. Dim matches As MatchCollection = New Regex("\d+").Matches(New Regex("<strong>(.*?)<\/strong>").Match(input).Value)
    7. Dim telnr As String = ""
    8. For Each m As Match In matches
    9. 'Wegen der (0) soll die 0 nicht mit in die endgültige Nummer übernommen werden
    10. If Not m.Value = "0" Then telnr &= m.Value
    11. Next
    12. 'Ausgeben und ein "+" davorsetzen
    13. MessageBox.Show("+" & telnr)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMiy“ ()

    Ich habe leider keine Erfahrung darin, deswegen verstehe ich deinen Code nicht. Muss ich aber auch nicht, sondern nur der TE ;)

    Mir ist nur aufgefallen, was bei ihm schief gehen könnte, und ich habe eine Lösung angeboten, die ich kannte.