RegEx Funktion (ReReplacer)

  • Hallo,
    kennt sich jemand mit der RegEx Funktion aus? (Reguläre Ausdrücke)


    ich möchte mit dem ReReplacer folgende Ersetzungen durchführen:
    "Test"
    soll durch
    "XYZ" ersetzt werden


    Allerdings, soll nur das erste Test auf einer Beitragsseite ersetzt werden. Ohne der RegEx Funktion würden alle "Test" ersetzt werden. Mit RegEx muss es möglich sein, das nur das erste "Test" ersetzt wird. Leider habe ich trotz diverser RegEx Generatoren keine Lösung gefunden.


    Immer wenn ich zu dem Test Code dranhänge wird gar nichts ersetzt...


    LG Tom

  • Das Plugin EOR hat eine Option nur eine Ersetzung durchzuführen.


    Im andern Forum hast auch ein BSp. gepostet

    Zitat

    Also aus:
    Test xcv Test sdfjie sdjfs eor Test sdfsd
    Wird:
    Abc xcv Test sdfjie sdjfs eor Test sdfsd


    Da nicht klar ist, wo dein erstes Test steht, hilft dir da auch ein Regex nicht weiter, wenn ReReplacer keine entsprechende Option hat. Außer das erste Test hat immer eine eindeutige Umgebung, z.B. immer ein <p> davor, die anderen nicht etc.

  • Das Plugin EOR hat eine Option nur eine Ersetzung durchzuführen.


    Im andern Forum hast auch ein BSp. gepostet


    Da nicht klar ist, wo dein erstes Test steht, hilft dir da auch ein Regex nicht weiter, wenn ReReplacer keine entsprechende Option hat. Außer das erste Test hat immer eine eindeutige Umgebung, z.B. immer ein <p> davor, die anderen nicht etc.


    Also laut Rereplacer (https://www.regularlabs.com/ex…orial#regular-expressions) ist das möglich.
    Es geht um das erste "Test" einer Artikelseite. Mittels RegEx soll das erste "Test" des Artikels ersetzt werden und alle weiteren "Test" dieses Artikels nicht. Bei einem anderen Artikel natürlich das gleiche. D.h. das erste "Test" soll ersetzt werden und alle weiteren der gleichen Seite nicht. Eigentlich sollte das ja möglich sein...




    Du kannst es ja direkt in der Datenbank mit REPLACE ersetzen. A = alter string, B = neuer String - vielleicht hilft dir das


    Ungetestet

    SQL
    UPDATE #__content
    SET 
    introtext = CONCAT(
        REPLACE(
        LEFT(introtext, INSTR(introtext, 'A')), 'A', 'B'), 
        SUBSTRING(introtext, INSTR(introtext, 'A') + 1)
    )


    Das ist mir natürlich klar ;)
    aber es geht mir darum dass das automatisiert erfolgt. das Test war nur ein Beispiel um die erklärung nicht zu verkomplizieren
    Tatsächlich möchte ich das ein Wort durch einen internen Link ersetzt wird.
    Zum Beispiel wenn im Artikel das Wort "Marathon" vorkommt, wird auf einen Beitrag verlinkt der den Begriff "Marathon" näher erklärt.
    Da es allerdings in einigen Artikel öfters zu dem Wort "Marathon" kommen kann, möchte ich natürlich, das nur das erste Mal in den Artikeln das Wort Marathon durch die Verlinkung ersetzt wird.

  • Da deine Seite, wenn ich mich recht entsinne, ja ohnehin schon immer mit Performance-Problemen zu kämpfen hatte, würde ich mir das gut überlegen. Diverse Regexe über längere Artikel (oder gar das gesamte Markup) laufen zu lassen, hat einen durchaus relevanten Performanceimpact.


    Laut ReReplacer hat es keinen Einfluss auf die Performance. Aber wenn das Features sowieso nicht funktioniert, hat das Tool ohnehin keinen Nutzen für mich


  • Laut ReReplacer hat es keinen Einfluss auf die Performance. Aber wenn das Features sowieso nicht funktioniert, hat das Tool ohnehin keinen Nutzen für mich


    Mal so rein logisch betrachtet: wie soll ein Feature, dass den Text der Seite einliest, nach bestimmten Wörtern durchsucht, abändert und zurück speichert keinen Performanceimpact haben? ;) der Code dafür muss ja zwangsläufig ausgeführt werden.