RegExp für Suchwort

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

  • RegExp für Suchwort

    Guten Tag alle zusammen,

    Auch wenn das Problem schon häufig diskutiert wurde, hab ich noch keine wirkliche Lösung gefunden:

    Ich habe ein Suchwort, oder mehrere, und will diese/s Suchwort innerhalb der Ausgabe rot markieren.

    Wenn ich also in der Datenbank nach 'test' Suche,
    dann soll er in der Ausgabe
    [COLOR=red]Test[/COLOR]er,
    Auto[COLOR=red]test[/COLOR],
    Auto[COLOR=red]test[/COLOR]er

    Also unabhängig von Gross/kleinschreibweise.
    Falls eine ueberschrift mehrere suchwörter enthält, sollen alle suchwörter rot markiert werden.
    Und wenn mehrere Suchwörter vorhanden sind, dann soll das Script sie wie einzelne Suchwörter behandeln, also auch jedes Vorkommen markieren.

    Geht das mit RegExp, ich bin nich sehr weit gekommen, kenne mich damit aber fast gar nicht aus. Habe es mit preg_replace probiert, aber das hat "nichts" getätigt.

    Bin für jede Hilfe dankbar
    mfg Martin
    Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

  • #2
    mal als basis zum erweitern:
    PHP-Code:
    $text "das ist WAS du suchAst";
    $suche1 "As";
    $suche2 strtolower($suche1);
    $suche3 strtoupper($suche1);
    echo 
    $ausgabe=preg_replace("\\(.*)($suche1|$suche2|$suche3)(.*)\\U","$1<font color=\"red\">$2</font>$3",$text); 
    Kissolino.com

    Kommentar


    • #3
      Code:
      $string = preg_replace("|(.*?)(suchwort)(.*?) |"si,"</font color=\"#FF0000\">\\2</font>",$string);
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        @wurzel gehts noch komlizierter?
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          geht irgendwie beides nicht, beim script con schmalle scheint mir ein grundsätzlicher syntaxfehler vorzuliegen, bei wurzels kommt empty delimiter, ich poste die fehlermeldung auch noch genauer wenn du willst.

          Danke erstmal schon, hoffe ihr habt noch büdde büdde für mich ne lösung

          mfg Martin
          Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

          Kommentar


          • #6
            huch:
            Code:
            $string = preg_replace("|(.*?)(suchwort)(.*?)|si","</font color=\"#FF0000\">\\2</font>",$string);
            ein quot sass falsch
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              Fast

              ein slash sass noch falsch, hier der gehende *g* Code:

              $string = preg_replace("|(.*?)(suchwort)(.*?)|si","<font color=\"#FF0000\">\\2</font>",$string);
              Was jetzt noch nicht stimmt ist das er anstatt Auto[COLOR=red]tester[/COLOR]

              jetzt
              [COLOR=red]test[/COLOR]er schreibt, er hackt alles was vorher kommt ab.

              mfg Martin
              Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

              Kommentar


              • #8
                das macht die hitze
                Code:
                $string = preg_replace("|(.*?)(suchwort)(.*?)|si","\\1<font color=\"#FF0000\">\\2</font>\\3",$string);
                h.a.n.d.
                Schmalle

                http://impressed.by
                http://blog.schmalenberger.it



                Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                ... nur ohne :-)

                Kommentar


                • #9
                  Spitze

                  Guddi, geht alles einwandfrei!
                  ich danke, könntest du, wenn es dir nichts ausmacht, mal in kurzen schritten erklären was die regexp macht, also was die einzelnen dinger konkret machen, damit des am ende so schön geht wie jetzt?

                  mfg Martin
                  Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

                  Kommentar


                  • #10
                    also

                    | <-- das ist der "trenner"
                    (.*?) <-- erste "gruppe" --> steht für beliebig viele zeichen oder kein zeichen. quasi für alles, was vorkommen könnte

                    (suchwort) <--- "gruppe" 2

                    \\1 \\2 usw. wieder die gruppen. beginned bei 1! nicht bei 0!
                    h.a.n.d.
                    Schmalle

                    http://impressed.by
                    http://blog.schmalenberger.it



                    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                    ... nur ohne :-)

                    Kommentar


                    • #11
                      ups, hatte mich im delimiter vertan:
                      PHP-Code:
                      $text "das ist WAS du suchAst";
                      $suche1 "As";
                      $suche2 strtolower($suche1);
                      $suche3 strtoupper($suche1);
                      echo 
                      $ausgabe=preg_replace("#(.*)($suche1|$suche2|$suche3)(.*)#U","$1<font color=\"red\">$2</font>$3",$text); 
                      so sollte es gehen.
                      Kissolino.com

                      Kommentar


                      • #12
                        gross kleinschreibung

                        und woher weiss dein script (schmalle)
                        das es gross und kleinschreibung ignorieren soll?

                        mfg Martin
                        Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

                        Kommentar


                        • #13
                          dass sagt ihm das "i". das "s" sagt ihm behandele den text zeile für zeile. das hatte ich vergessen zu erwähnen
                          mir ist einfach zu warm
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #14
                            alles klar

                            mhm, jetzt hab ichs verstanden, hoffe das diese suche noch paar leuten von nutzem ist, weil ich brauche die quasi ständig.

                            herzlichen Dank
                            mfg Martin
                            Evtl. Rechtschreibfehler sind beabsichtigt und dienen der Belustigung des Lesers

                            Kommentar


                            • #15
                              @schmalle
                              supi, wieder was gelernt
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X