Regex Split und Pattern im Teilstring

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von doLob.

    Regex Split und Pattern im Teilstring

    Hallo Leute,
    ich kriegs nicht hin.
    Ich möchte eine Textdatei gesplittet an einem Pattern in ein Array einlesen. Die sieht stark gekürzt etwa so aus:

    27 34fd: i: 25430005 9bc5ac: ffff b5ca: 195c: 11ef: d:20456 7ee2: f:

    Es soll immer bei der Kombination [Leerzeichen, vierstellige HEX-Zahl, Doppelpunkt] gesplittet werden. Die zeile sieht so aus:

    VB.NET-Quellcode

    1. SplitArray = Regex.Split(SubjectString, "(\p{Zs}[0-9a-fA-F]{4})+:", RegexOptions.IgnoreCase)


    Das Ergebnis ist leider noch nicht befriedigend. Es sieht so aus:

    Spoiler anzeigen
    34fd
    i: 25430005 9bc5ac:
    b5ca

    195c

    11ef
    d:20456
    7ee2
    f:


    Ich möchte das das Ergebnis aber so aussieht:

    Spoiler anzeigen
    34fd: i: 25430005 9bc5ac:
    b5ca:
    195c:
    11ef: d:20456
    7ee2: f:



    Die hexadezimale Zahl und der Doppelpunkt des Pattern soll also im Teilstring enthalten sein.
    Ich habe leider keine Idee mehr. Vielleicht kann einer helfen.
    Meinst du so:

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Module Module1
    3. Sub Main()
    4. Dim e, t As String
    5. t = "27 34fd: i: 25430005 9bc5ac: ffff b5ca: 195c: 11ef: d:20456 7ee2: f:"
    6. e = Regex.Replace(t, "\p{Zs}([0-9a-f]{4}:)", "¿$1", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
    7. Debug.Print(e)
    8. Dim SplitArray() = e.Split("¿"c)
    9. For i As Integer = 0 To SplitArray.Length - 1
    10. Debug.Print(SplitArray(i))
    11. Next
    12. End Sub
    13. End Module