probleme mit preg_replace

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

  • SEJ
    antwortet
    Hat sich erledigt... Lag an einer schleife von einem Externscript.

    Einen Kommentar schreiben:


  • SEJ
    antwortet
    Ich habe dazu auch mal eine Frage:

    $USER[nick] = AB2314 (Swen);
    $ref = $USER[nick];
    $sref = "/(\w+) \((\w+)\)/";
    $eref = "\$1";
    echo preg_replace($sref, $eref, $ref);

    was ich jetzt nicht verstehe ist, dass er mir immer doppelt ab2314 rausspuckt... hat da einer eine idee?

    Einen Kommentar schreiben:


  • monsterag
    antwortet
    danke nun habe ich es hinbekommen :-)

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    erstmal editierst du dein post, verdammt!

    und dann schaust du dir das patterm nochmal aufmerksam an und überlegst dir, WAS du rausgenommen hast.

    Einen Kommentar schreiben:


  • monsterag
    antwortet
    geht leider auch nicht...
    Original: (setq ende "bla")(setq ende ",")

    Warning: Unknown modifier '/' in F:\FoxServ\www\lisp\test.php on line 5
    Ergebnis:
    Ich habe nach deinem Vorschlag folgenden Code genommen:
    PHP-Code:
    $a preg_replace('"(.*)"/Uis',' ',$satz); 
    oder war es so nicht gemeint?

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    brich den code um!

    nimm aus Milian's vorschlag die whitespaces raus und versuch's nochmal.

    Einen Kommentar schreiben:


  • monsterag
    antwortet
    danke aber das ersetzt bei mir gar nichts
    (setq ende "bla")(setq ende ",")
    die zeile kommt unverändert raus.
    Ich hatte es auch schon mit folgendem hinbekommen, aber
    das scheint sich die Funktion "greedy" zu verhalten. d.h sie nimmt auch die Fragmente zwischen den Fundstücken, die ja nach dem Muster logisch sind, aber ich wollte natürlich nur die in den Anführungsstrichen stehenden Teile löschen.

    PHP-Code:
    ereg_replace('\"([[:alnum:]]|[[:digit:]]|[[:blank:]]|[[:punct:]])*\"'""$satz); 
    Noch ev. andere Ideen?

    Einen Kommentar schreiben:


  • Milian
    antwortet
    vlt. so:

    $str = preg_replace('/\s"(.*)"\s/Uis',' ',$str);

    Einen Kommentar schreiben:


  • monsterag
    antwortet
    da habe ich mich ev. etwas merkwürdig ausgedrückt.
    Ich möchte von dem Satz
    testtext "hallo" wie
    folgendes zurückbekommen. Und es könnten mehrere Ausdrücke die mit Anführungszeichen geklammert sind vorhanden sein. die sollten natürlich alle durch ein Leerzeichen ersetzt werden.
    testtext wie

    Einen Kommentar schreiben:


  • derHund
    antwortet
    Re: probleme mit preg_replace

    Zumal es auf der Testseite funktionierte...
    das muß ja nichts heißen, das tool scheint noch recht buggy zu sein.

    ich möchte in folgender Textzeile die Ausdrücke in Anführungszeichen herausfiltern
    ich könnte mir vorstellen, daß du dort ein kleines wort vergessen hast? ansonsten gäbe es wirklich nicht viel sinn, so einen dicken regexp zu verwenden.

    jedes zeichen außer dem " wäre btw am einfachsten als [^"] ausgedrückt.

    Einen Kommentar schreiben:


  • penizillin
    antwortet
    ich möchte in folgender Textzeile die Ausdrücke Anführungszeichen herausfiltern
    PHP-Code:
    $str str_replace('"'''$str); 

    Einen Kommentar schreiben:


  • monsterag
    hat ein Thema erstellt probleme mit preg_replace.

    probleme mit preg_replace

    Hallo, ich möchte in folgender Textzeile die Ausdrücke Anführungszeichen herausfiltern.

    testtext "hallo" wie

    ich habe den regulären Ausdruck in
    http://pcre.nophia.de/evaluate/
    getestet, da sah der Output so aus wie ich ihn haben wollte.
    "([äöüßa-z- \/:._;,!\\(){}]|[0-9])*"

    PHP-Code:
    $reg_ausdruck "\"([äöüßa-z- \/:._;,!\\(){}]|[0-9])*\""
    PHP-Code:
    $zeile preg_replace($reg_ausdruck,"",$zeile); 
    In meinem PHP-Skript kommt aber, wenn ich mir die Variable $zeile mit echo ausgeben lasse nur folgendes raus:
    \"\"

    Wo liegt mein Fehler? Zumal es auf der Testseite funktionierte...
Lädt...
X