Split nach jeden 6 Punkt

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von MrBendinator.

    Split nach jeden 6 Punkt

    Hallo
    mein Problem liegt grad dadrin das ich es einfach nicht hinbekomm ein String nach jeden 6 "." zu splitten

    mein String sieht so aus:

    Quellcode

    1. 1.3.1020.3.1200..0.8.991.4.3.100000.0.9.154.0.0.48600.


    das ganze müsste dann so aus

    Quellcode

    1. 1.3.1020.3.1200..
    2. 0.8.991.4.3.100000.
    3. 0.9.154.0.0.48600.


    aber ich bekomme es momentan einfach nicht hin
    ich steh irgendwie auf dem schlauch

    vielleicht kann mir ja jemand einen anschubser geben
    ein pattern ist ... hmmmm ein muster, nach dem regex sucht. ein ausdruck, eine vorlage, iwie sowas

    VB.NET-Quellcode

    1. imports system.text.regularexpression
    2. ...
    3. dim re as regex = new regex("((?:\d+\.){6})")
    4. dim str as string = "123434..23423423.23423.324.234.324.23.423.423324..234.23..324"
    5. if (re.ismatch(str)) then
    6. dim m as matchcollection = re.matches(str)
    7. ... wie du hier die matchCollection ausliest musst du selbst schauen.
    8. ... hat auf jeden fall was zu tun mit "m.groups" und/oder "m.captures"
    9. endif
    10. ...


    ungetestet, fehler darfst du behalten :P
    sooo schwer isses nicht =) aber wollt trotzdem nich das ganze ergebnis posten, sonst hast du ja nix mehr zum tüfteln :P

    wenn du nun nicht weisst was in der variable "m" (matchCollection") alles drinnesteckt, dann einfach alles ausprobieren.

    msgbox(m.groups.count)
    msgbox(m.captures.count)
    for each xyz as ... in m.groups
    ... msgbox(xyz.tostring())
    next

    usw =)
    uff :) echt an der erstes ?
    meinst du "imports system.text.regularexpression" ?
    das kommt gaaaaaanz oben hin. noch vor "class". das ist dafür, dass du nicht andauernd "imports system.text.regularexpression.regex" schreiben musst, sondern diregt auf "regex" zugriefen kannst. bedeutet "importieren". alles was sich in "imports system.text.regularexpression" befindet kannst dann direkt benutzen.
    Och Leute, ihr schießt wieder mit Kanonen auf Spatzen. ;)

    VB.NET-Quellcode

    1. Dim s As String = "1.3.1020.3.1200..0.8.991.4.3.100000.0.9.154.0.0.48600."
    2. Dim result As New List(Of String)
    3. Dim count As Integer = 0
    4. Dim start As Integer = 0
    5. For i As Integer = 0 To s.Length - 1
    6. If s(i) = "." Then count += 1
    7. If count = 6 Then
    8. count = 0
    9. result.Add(s.Substring(start, i - start + 1))
    10. start = i + 1
    11. End If
    12. Next

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !