Regulärer Ausdrücke



  • Moinsen,

    ich habe ein Problem und zwar habe ich zwei Zeichenketten, ich nenne sie "Anfang der Liste" und "Ende der Liste". Diese Zeichenketten befinden sich jedoch in verschiedenen Zeilen. Außerdem will ich die Groß-und Kleinschreibung unwichtig machen. Glaube das funktioniert beides mit \i \m oder??

    Mein Ra sieht im moment so aus:

    "Anfang der Liste"(.*?)"Ende der Liste"

    (und dazu der printf-Befehl("....." mit dem ich den bereich zw. anfang und ende der liste bearbeiten bzw. (löschen) möchte.)

    so geht es jedoch aus dem oben genannten Grund glaube ich zumindest nicht.
    Kann mir wer helfen???



  • Hallo,

    bitte etwas mehr details.
    Was geht, was geht nicht ?

    Welche RegExp engine verwendest Du ?



  • Also wenn die beiden Zeichenketten in einer Zeile sind, dann kann ich den Text zwischen diesen beiden Ketten löschen, bearbeiten, ect.
    Sie sind aber in verschiedenen Zeilen und dann geht das nicht.
    Man kann das doch mit dem m-Modifier irgendwie machen oder??
    Außerdem will ich Groß und Kleinschreibung ignorieren soweit ich weiß geht das mit dem i-Modifier aber wie??

    Was ist eine Reg-Ex Engine??
    Ich arbeite mit Flex^^...

    Des Weiteren würde mich wenn dieses Problem behoben ist interessieren, wie ich anstatt den Bereich zwischen den beiden Zeichenketten zu bekommen, genau den Bereich außerhalb der beiden Zeichenketten ansprechen kann.

    Hoffe du kannst mir nun weiterhelfen, Thx



  • Bei Perl wäre /im ok, mit Flex^^... habe ich nie gearbeitet. Schau mal in der Doku unter modifier nach, manchmal bringt die Engine eigenheiten mit sich.

    http://livedocs.macromedia.com/flex/2/langref/RegExp.html

    Und sry wegen dem "was geht nicht" - ich sollte wirklich genauer lesen.



  • Du kannst in Flex Zustände definieren und reguläre Ausdrücke in Abhängigkeit des Zustandes auswerten lassen. Beim Lesen von Muster A kannst du z.B. in den Zustand X wechseln und definieren, dass dich Muster B nur interessiert, wenn du in Zustand X bist. Ist klar worauf ich hinaus will? 😉



  • Ehrlich gesagt nicht ganz :D^^
    Ist meine Frage den so kompliziert :(((

    Meine Aufgabe ist es, aus einem lange Text bestimmte Teile zu bekommen, also einen Bereich zwischen zwei Zeichenketten (z.b "Listenbeginn" und "Listenende").

    Beispiel:

    Bla blub dies ist ein Probtext sdfsdfosdjf
    Listenanfang dsbf ohdfpoh sdfoi ph9 pqofh
    iof hdsf lihd Listenende dilsfsdlfin
    fsdöofjsdfo...

    Der Teil zwischen Listenanfang und Listenende interessiert mich, beziehungsweise alles drumherum interessiert mich nicht. Und genau dieses Problem will ich mit dem RA

    "Listenanfang"(.*?)"Listenende" {printf("blub");}

    lösen, jedoch geht es hier nur, wenn beide Zeichenketten in derselben Zeile stehen.........

    Helft mir 🙂



  • Was ich meinte ist sowas hier:

    %x X
    
    %%
    
    Listenanfang	BEGIN(X);
    <X>Listenende	BEGIN(INITIAL);
    <X>.		ECHO;
    .		;
    

    Muster A ist jetzt Listenanfang und Muster B Listenende. Erklärung siehe Beitrag oben 😉


Anmelden zum Antworten