Regex frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Regex frage

    moin,

    ich hätte ne frage zu Regex:

    Ich hab nen String und möchte da eine zeile rauslöschen in der irgendwas %% irgendwas %% irgendwas vorkommt.
    Meine idee wäre:

    PHP-Code:
    $str preg_replace('#'."\n".'(.*)%%(.*)%%(.*)'."\n".'#isU'"\n"$str); 
    Das funktionier eig schon, hat nur noch den fehler, dass im ersten (.*) ja auch ne neue zeile vorkommen kann. Deshalb löscht mir der Befel immer alleszwischen der 1. Zeile und der Zeile in der das %%(.*)%% vorkommt.

    Wie kann ich nun beim 1. (.*) bestimmen dass dort alles, nur kein Zeilenumbruch vorkommen darf?

    Schonma vielen Dank für eure Antworten.

    mfg

  • #2
    s (PCRE_DOTALL)
    Wenn dieser Modifikator gesetzt ist, passt das Metazeichen Punkt im Suchmuster auf alle Zeichen inklusive Zeilenumbrüche. Ohne diesen Modifikator sind Zeilenumbrüche ausgeschlossen. Dieser Modifikator entspricht dem Perl-Modifikator /s. Unabhängig davon, ob dieser Modifikator gesetzt ist, passt eine verneinende Zeichenklasse wie z.B. [^a] immer auf einen Zeilenumbruch.
    Vielleicht den Modifier weglassen? Sonst [^\n] mal versuchen.

    Kommentar


    • #3
      vielen dank
      scheint ohne den modifikator zu funktionieren

      Kommentar

      Lädt...
      X