Lua Kommentare via Regex entfernen

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Lua Kommentare via Regex entfernen

    Hallo miteinander,

    ich arbeite gerade an einem kleinen Tool, was Lua-Files ausliest. Ich überspringe dabei sämtliche Zeilen, die mit "--" (Kommentar: Zeile) oder "--[[" (Kommentar: Block) beginnen. Nun kommen in der Datei auch Strings vor, hinter denen ein Kommentar steht. Diese bearbeite ich mit folgendem Befehl, um den Kommentar zu entfernen:

    VB.NET-Quellcode

    1. CurRow = Regex.Replace(CurRow.Trim, "(\-\-)\s*.*", "").Trim

    Jetzt habe ich allerdings das Problem, dass es leider auch Zeilen gibt, die "--" innerhalb des auszulesenden String besitzen:

    Quellcode

    1. VAR1 = "Dies ist ein Haus--wenn auch kein schönes.",
    oder

    Quellcode

    1. VAR1 = "Dies ist ein Haus -- wenn auch kein schönes.",

    Meine Idee ist, dass ich die oben genannte Pattern nur anwende, wenn entweder kein Anführungszeichen oder mind. zwei davon vor dem "--" stehen. Leider finde ich keine passende Pattern dafür. Ich hoffe, ihr könnt mir weiterhelfen.
    Falls euch eine elegantere Lösung einfällt, nehme ich die auch gern entgegen :)

    Besten Dank im Voraus.
    Dateien umbenennen und nummerieren - nichts leichter als das!

    Basic File Renamer: 100%
    Schreibe den Matching-Algorithmus selbst. Hier ein Ansatz dafür:

    - Teste, ob eine Zeile "--" und Anführungszeichen enthält. Falls nicht, fahre fort wie oben beschrieben. Sonst:
    - Initialisiere q = 0
    - Scanne diese Zeile von vorn beginnend
    --> " gefunden und voriges Zeichen ist nicht \ (Escapesequenz, z.B. \"): q += 1
    --> -- gefunden und q gerade: Stop, Kommentar beginnt bei aktuellem Index.
    --> -- gefunden und q ungerade: Kommentar in String; setze Suche fort.

    Denke ggf. auch an einfache Anführungszeichen.
    Gruß
    hal2000