VB.NET RegEx - Unterstrich & Zeilenumbruch

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von noob98.

    VB.NET RegEx - Unterstrich & Zeilenumbruch

    Guten Nachmittag,
    als allererstes, ja ich kenne das große Tutorial RegEx.
    Hab nur ein kleines problem, und zwar:

    VB.NET-Quellcode

    1. Dim rgx As Regex = New Regex("(^)Anfang:[a-zA-Z0-9_ .:\\\n]+Ende($)", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
    2. Dim Name As MatchCollection = rgx.Matches(RichTextBox1.Text)
    3. MsgBox(Name.Item(0).ToString.Trim)

    Im RichTextBox1 steht zum beispiel:

    Quellcode

    1. Anfang:
    2. Code_Test
    3. Informationen...
    4. Ende


    Wenn ich alles in eine Zeile packe und "\n" rausnehme funktioniert es, mit dem unterstrich.
    Wenn aber Zeilenumbrüche habe funktioniert es nicht mehr, und wenn ich "_" rausnehme zeigt er mir eben das erste "Anfang" an ohne unterstrich an.

    Weiß einer warum beides zusammen funktioniert? Was hab ich falsch gemacht??

    Vielen dank für jede Antwort!

    Update:

    Noch eine wichtige Information, es wird komischer weiße alle "Anfang" angezeigt wenn ich "_" drin hab und wird gelesen bis zum letzten "Ende"

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

    @Eierlein hat leider auch nicht geholfen.
    Hier noch mal mein problem, mit Screenshots:
    RichTextBox:

    Code:

    VB.NET-Quellcode

    1. Dim rgx As Regex = New Regex("(^)Anfang:[a-zA-Z0-9 \\_\n.:]+Ende($)", RegexOptions.IgnoreCase Or RegexOptions.Multiline)

    Ausgabe: Gesammte RichTextBox (Auch von Eierlein)


    Code:

    VB.NET-Quellcode

    1. Dim rgx As Regex = New Regex("(^)Anfang:[a-zA-Z0-9 \\_.:]+Ende($)", RegexOptions.IgnoreCase Or RegexOptions.Multiline)

    Ausgabe: Erste Zeile (Richtig AUßER ohne Zeilenumbruch) Index 2 findet er nicht


    Code:

    VB.NET-Quellcode

    1. Dim rgx As Regex = New Regex("(^)Anfang:[a-zA-Z0-9 \\\n.:]+Ende($)", RegexOptions.IgnoreCase Or RegexOptions.Multiline)

    Ausgabe: Nur die letzte Box wo kein unterstrich gibt


    Und alle ausgaben sind logisch außer die erste.
    Noch ein Versuch: (Nicht getestet).

    VB.NET-Quellcode

    1. Dim rgx As Regex = New Regex("Anfang:.*?Ende", RegexOptions.IgnoreCase Or RegexOptions.Multiline Or RegexOptions.Singleline)
    2. Dim Treffer As Match = rgx.Match(DeinText)
    3. While Treffer.Success
    4. debug.print(Treffer.Value)
    5. Treffer = Treffer.NextMatch()
    6. End While