Regex [Hilfe]

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

  • Regex [Hilfe]

    Hallo,

    ich habe vor eine suche zu realsieren. ich lese aus meiner datenbank folgendes aus:
    s12-13_fc0207_korr00 (das ist ein name)

    nun möchte ich via Regex aus dem "Wort" folgendes filtern:
    s[color=red]12[/color]-[color=red]13[/color]_fc0207_korr00

    wie stelle ich das an? und ja ich möchte bei Regex bleiben!

    mfg sxs

    (PS: erster post nicht so hart mit mir sein :])

  • #2
    PHP-Code:
    preg_match("/[0-9]{2}-[0-9]{2}/i",$str,$erg); 
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      @Kropff
      Modifikator i bei Zahlen so überflüssig wie ein Kropf

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        OffTopic:
        copy & paste & nicht genau hinschauen

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Original geschrieben von Kropff
          PHP-Code:
          preg_match("/[0-9]{2}-[0-9]{2}/i",$str,$erg); 
          peter
          du nimmst den strich aber mit und den will ich ned

          Kommentar


          • #6
            Würdest du bitte erstmal erläutern was genau du matchen willst?

            Ggf. helfen zusätzliche Klammern um die Zahlen, siehe Manual, Regex-Tutorial, etc. etc. etc.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              Würdest du bitte erstmal erläutern was genau du matchen willst?

              Ggf. helfen zusätzliche Klammern um die Zahlen, siehe Manual, Regex-Tutorial, etc. etc. etc.
              ich habe eine art suchscript ich sehe anhand von the regex coach ja was genau er sich rauspickt..!

              Kommentar


              • #8
                Original geschrieben von sxs
                ich habe eine art suchscript ich sehe anhand von the regex coach ja was genau er sich rauspickt..!
                Nach dieser unglaublich aufschlussreichen Antwort auf meine Frage [/sarkasmus], empfehle ich nach wie vor Klammen in der weisen Voraussicht, dass das das ist was du willst...

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Also dann passe Kropff's Zeile etwas an
                  PHP-Code:
                  preg_match("/([0-9]{2})-([0-9]{2})/i",$str,$erg); 
                  Jetzt steht die Lösung in $erg drin...

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Original geschrieben von jahlives
                    Also dann passe Kropff's Zeile etwas an
                    PHP-Code:
                    preg_match("/([0-9]{2})-([0-9]{2})/i",$str,$erg); 
                    Jetzt steht die Lösung in $erg drin...

                    Gruss

                    tobi
                    hey leider nimmt er immer noch den strich mit also das minus zeichen!

                    Kommentar


                    • #11
                      hey, dann mach mal var_dump($erg) und such dir die korrekten Unterelemente. Das erste Element ist IMMER der gesamte Match. Teilmuster kommen danach.

                      Gruss

                      tobi


                      Test
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        ok machen wir es mal so nun habe ich ([0-9][0-9][0-9])- das gibt mir schonmal die ersten 2 und es funkt. auch wie kann ich nun sagen hey ich will ab -noch mal 2 ziffern?

                        Kommentar


                        • #13
                          Wenn ich von deinem Beispiel ausgehe, dann wolltest du das zahl - zahl gemachted wird. Auf dein Beispiel bezogen also 12 und 13
                          Und genau das macht der RegExp. Ich war noch so nett einen Link Test zu setzen zu einem wirklich guten RegExp Evaluator.

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Original geschrieben von jahlives
                            Wenn ich von deinem Beispiel ausgehe, dann wolltest du das zahl - zahl gemachted wird. Auf dein Beispiel bezogen also 12 und 13
                            Und genau das macht der RegExp. Ich war noch so nett einen Link Test zu setzen zu einem wirklich guten RegExp Evaluator.

                            Gruss

                            tobi
                            hey, das funkt. aber leider nicht wenn ich nun bspw. in die suche 3 eintippe dann wirft er alles mit 3 raus wenns 43 is! 13 zeigt er erst garnicht an hiermal der code

                            PHP-Code:
                            $q2$objRequest->getData('q2')? " AND strName REGEXP
                            '([0-9]{2})-([0-9]{2})"
                            .substr(mysql_real_escape_string ($objRequest->getData('q2')),0)."' " ' ';

                            // Noch die SQL Abfrage

                            $strSQL "SELECT id, parentid, strName FROM ".TABLE_PREFIX."contents WHERE boolComplete=1 AND (strTxt LIKE ".$strQ.") 
                            AND strName NOT LIKE 'old.%' "
                            .$yearQ $issueQ $q2$q3." ORDER BY parentid, intPage ASC"
                            Zuletzt geändert von sxs; 17.04.2007, 15:25.

                            Kommentar


                            • #15
                              Man hätte ja auch mal sagen können, dass du einen mysql-Regex meinst.
                              Man könnte auch den Code mal fix umbrechen, damit der horizontale Scrollbalken wieder verschwindet, welcher laut Regeln nicht erlaubt ist.

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X