[REGEX] Schnellster stringersatz

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

  • [REGEX] Schnellster stringersatz

    Hi,
    ich möchte im Prinzip einfache Stringersatz sachen wie z.B. "|blup|" durch "|" machen lassen.
    Sind die normalen Stringersatzfunktionen (hier str_replace()) da (sehr viel) schneller als eregi oder preg?

    Man braucht ja nicht wirklich reguläre Ausdrücke dazu...oder gibt es hier keinen Geschwindigkeitsunterschied?

    Gruß, Florian

  • #2
    Das kommt auf deinen Ausdruck an. Enthält dein Ausdruck sehr viele Platzhalter in Form von gefräßigen .* oder Rekursionen kann der reguläre Ausdruck zum Teil sehr langsam werden.
    Im Allgemeinen sagt man der REGEX-Engine sowieso etwas Trägheit hinterher, was bei der Komplexität an Möglichkeiten zur Erstellung eines Ausdrucks aber nicht schlimm ist.
    Nimm reine String-Funktionen überall, wo du nur kannst und verwende REGEX nur wenns keinen anderen Ausweg gibt.

    Kommentar


    • #3
      str_replace ist immer vorzuziehen wenn es sich um einfach Ersetzungen handelt wie in deinem Beispiel

      ereg sollte man nicht mehr einsetzen da Zitat:

      Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().
      preg_replace sollte zum Einsatz kommen wenn ein richtiger String nach einem Muster ersetzt werden soll.....
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Jo alles klar.
        Danke, Flo

        Kommentar

        Lädt...
        X