Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL: Search&Replace mit regulärem Ausdruck

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

    MySQL: Search&Replace mit regulärem Ausdruck

    Wir haben ein Wordpress nach Typo3 migriert und würden gerne noch folgendes Konstrukt aus der Datenbank entfernen

    [button color="accent-color" hover_text_color_override="#fff" size="small" url="beliebige URL" text="...." color_override=""]
    Oder einfach nur
    [button color="accent-color" ....]
    Wie stellt man das am besten an?
    Zuletzt geändert von wecotec; 02.07.2019, 09:14.
    Markus
    ---
    https://www.facebook.com/markus.weber.180410

    #2
    Probier mal folgendes:
    Code:
    Update tabelle set value = SUBSTRING_INDEX(value, ']', -2)
    Meinen Test hatte ich mit diesem Feldwert gemacht:
    Code:
    [button color="accent-color" hover_text_color_override="#fff" size="small" url="beliebige URL" text="...." color_override=""]text[/button]
    Übrig blieb:
    Code:
    text[/button]
    Das habe ich dann mit:
    Code:
    Update tabelle set value = SUBSTRING_INDEX(value, '[', 1)
    auf nur noch "text" verkürzt.

    Mach aber vorher ein Backup der Tabelle
    Zuletzt geändert von masterframe; 02.07.2019, 09:43.
    MfG,
    masterframe

    Kommentar


      #3
      Danke Dir....aber ich habe mich dann etwas falsch ausgedrückt

      Es soll das komplette [button]-Konstrukt raus, inklusive "text" (der natürlich variabel) ist. Das muss ja irgendwie mit regulären Ausdrücken gehen, oder?
      Markus
      ---
      https://www.facebook.com/markus.weber.180410

      Kommentar


        #4
        Hallo wecotec,

        hiermit kann man das machen:

        https://github.com/hholzgra/mysql-udf-regexp

        Auf dem Webserver habe ich es allerding nicht getestet.

        Nativ erst ab MySQL 8.

        Ggf. ist es besser ein Dump zu erzeugen, es zu ändern im Texteditor via RegEx oder manuell und dann wieder einzuspielen. Hier hat man ggf. mehr Kontrolle.

        Mit freundlichen Grüßen

        Nils Dornblut
        Blog - Facebook - Twitter
        Communitybetreiber: domainfactory GmbH
        Impressum / Pflichtangaben

        Kommentar


          #5
          Zitat von Nils Dornblut Beitrag anzeigen
          Hallo wecotec,
          hiermit kann man das machen:
          (...)
          Vielen Dank....ich muss das erst verstehen, mit regülären Ausdrücken stehe ich auf Kriegsfuss (obwohl ich sie toll finde und jeden um das Wissen beneide!)

          BTW: Sie erwähnen MySQL 8 Gibt es eine Roadmap bzgl der Einführung?
          Markus
          ---
          https://www.facebook.com/markus.weber.180410

          Kommentar


            #6
            Zitat von wecotec Beitrag anzeigen
            Danke Dir....aber ich habe mich dann etwas falsch ausgedrückt

            Es soll das komplette [button]-Konstrukt raus, inklusive "text" (der natürlich variabel) ist. Das muss ja irgendwie mit regulären Ausdrücken gehen, oder?
            Ja dann probiere mal den hier:
            Code:
            Update tabelle SET value = CONCAT(LEFT(value, LOCATE('[button', value)-1),  SUBSTRING(value, LOCATE('[/button]', value)+9))
            MfG,
            masterframe

            Kommentar


              #7
              Nils Dornblut

              Habe gerade gesehen, dass in meinem Posting #2 hier im Thread die Links noch drin sind.
              Kannst du die bitte noch eliminieren?
              MfG,
              masterframe

              Kommentar


                #8
                Zitat von wecotec Beitrag anzeigen
                BTW: Sie erwähnen MySQL 8 Gibt es eine Roadmap bzgl der Einführung?
                Das wird im aktuellen Image nicht möglich sein aus technischen Gründen/Zusammenhängen. Von daher ist die Einführung erst einmal unklar, aber wir sind dran. Mehr kann ich da leider aktuell nicht zu sagen.

                Mit freundlichen Grüßen

                Nils Dornblut
                Blog - Facebook - Twitter
                Communitybetreiber: domainfactory GmbH
                Impressum / Pflichtangaben

                Kommentar


                  #9
                  Zitat von masterframe Beitrag anzeigen
                  Nils Dornblut

                  Habe gerade gesehen, dass in meinem Posting #2 hier im Thread die Links noch drin sind.
                  Kannst du die bitte noch eliminieren?
                  done!

                  Hierzu ein paar Hinweise:
                  1. Ersten Button im Editor "Quelle" zur Kontrolle nutzen.
                  2. Zweiten Button "Formatierung entfernen" kann man gut benutzen.
                  3. Dritter Button "Als Klartext einfügen" ist der sicherste Weg nicht ungewollt Formatierungen zu übernehmen, dann braucht man die ersten beiden nicht.
                  Mit freundlichen Grüßen

                  Nils Dornblut
                  Blog - Facebook - Twitter
                  Communitybetreiber: domainfactory GmbH
                  Impressum / Pflichtangaben

                  Kommentar


                    #10
                    Zitat von Nils Dornblut Beitrag anzeigen

                    done!
                    Danke!
                    Sorry, daß ich dir zusätzlich Arbeit verusacht habe.

                    Zitat von Nils Dornblut Beitrag anzeigen

                    Hierzu ein paar Hinweise:
                    1. Ersten Button im Editor "Quelle" zur Kontrolle nutzen.
                    2. Zweiten Button "Formatierung entfernen" kann man gut benutzen.
                    3. Dritter Button "Als Klartext einfügen" ist der sicherste Weg nicht ungewollt Formatierungen zu übernehmen, dann braucht man die ersten beiden nicht.

                    Lieb von dir, dass du mir die Tipps aufgeschrieben hast.
                    Ich glaube ich kannte die aber schon

                    Heute VormIttag war es ein klein wenig hektisch, unmittelbar nach Posting Nr. 2 bin ich aufgesprungen und zu einem Kunden gefahren.
                    Normalerweise lese ich meine Beiträge nochmals.

                    Hier hätte ich auch noch einen Tipp.
                    Wir hatten doch im letzten Forum schon festgestellt, dass die Links nicht besonders gut visuell hervorgehoben sind.
                    Dann hatten wir gemeinsam eine CSS-only Lösung erarbeitet.
                    a:after mit schöner Link-Grafik.
                    Du erinnerst dich sicherlich.
                    Kannst du das bitte auch wieder hier einarbeiten?

                    Und last but not least:
                    Im Grunde war mir der Link egal. Ich bin mir sicher, dass niemand da hätte Schabernack treiben können.
                    Aber aus Höflichkeit & Respekt (und das meine ich ernst!) dF gegenüber hielt ich es nicht für angemessen den Link stehen zu lassen.
                    Du kannst dir denken warum.
                    Vertiefen möchte ich das nicht.
                    Auch das kannst du dir denken warum

                    Insgesamt:
                    Nochmals danke für die Korrektur 👍
                    Zuletzt geändert von masterframe; 02.07.2019, 22:51.
                    MfG,
                    masterframe

                    Kommentar


                      #11
                      Zitat von masterframe Beitrag anzeigen

                      Danke!
                      Sorry, daß ich dir zusätzlich Arbeit verusacht habe.
                      Kein Problem!

                      Hier hätte ich auch noch einen Tipp.
                      Wir hatten doch im letzten Forum schon festgestellt, dass die Links nicht besonders gut visuell hervorgehoben sind.
                      Dann hatten wir gemeinsam eine CSS-only Lösung erarbeitet.
                      a:after mit schöner Link-Grafik.
                      Du erinnerst dich sicherlich.
                      Kannst du das bitte auch wieder hier einarbeiten?
                      Ja, ich habe das schon auf dem Zettel, hatte aber auf die konkrete Forderung hier gewartet.

                      Und last but not least:
                      Im Grunde war mir der Link egal. Ich bin mir sicher, dass niemand da hätte Schabernack treiben können.
                      Aber aus Höflichkeit (und das meine ich ernst!) dF gegenüber hielt ich es nicht für angemessen den Link stehen zu lassen.
                      Du kannst dir denken warum.
                      Vertiefen möchte ich das nicht.
                      Auch das kannst du dir denken warum
                      Alles gut, ich hatte mir darüber keinerlei Gedanken gemacht und den Link auch nicht weiter verfolgt. Generell gibt es sicher Dinge, die hier im Forum diskutiert werden sollen und müssen, aber sicher auch andere Dinge, die hier nicht hingehören. Wenn jeder da ein bisschen drüber nachdenkt, dann wird das sicher wieder eine gute Community die allen Seiten Vorteile bringt.

                      Mit freundlichen Grüßen

                      Nils Dornblut
                      Blog - Facebook - Twitter
                      Communitybetreiber: domainfactory GmbH
                      Impressum / Pflichtangaben

                      Kommentar

                      Lädt...
                      X