Regexp

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

  • Regexp

    Mein String sieht z.B. so aus: 4;7;2

    Nun möchte ich per REGEXP nach der 2 suchen.
    Ich habe es so probiert:
    PHP-Code:
    [^;]2[;$] 
    Was mache ich falsch?

  • #2
    Ein RegExp nur um nach einem Teilstring zu suchen, naja (Atombomben auf Spatzen
    Schau dir z.B. mal LOCATE(substr,str)

    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


    • #3
      Mit LOCATE wird es aber nicht funktionieren, wenn mein String z.B. so aussieht: 3;12;5
      Denn dann wird er zwar eine 2 finden, die aber in Wirklichkeit eine 12 ist.

      Kommentar


      • #4
        1. Welcher I. hat die Daten SO in die DB gespeichert?
        2. Willst du wirklich nur nach DER zwei suchen (am ende des Strings) oder darf die auch in der Mitte enthalten sein (1;2;3)
        3. nen Tipp bekommst du erst, wenn dein Ansatz so aussieht, als ob du lang genug versucht hättest...

        Kommentar


        • #5
          1. Welcher I. hat die Daten SO in die DB gespeichert?
          Speichere die Daten kommasepariert und verwende dann die MySql Fkt IN()
          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


          • #6
            1. Welcher I. hat die Daten SO in die DB gespeichert?
            Wie würdest du die Daten denn speichern, wenn beliebig viele Zahlen gespeichert werden müssen (ohne eine weitere Zuordnungstabelle zu erzeugen)?

            2. Willst du wirklich nur nach DER zwei suchen (am ende des Strings) oder darf die auch in der Mitte enthalten sein (1;2;3)
            Die 2 (oder auch jede andere Zahl) kann nicht nur am Ende stehen, sondern auch am Anfang, oder irgendwo in der Mitte.

            3. nen Tipp bekommst du erst, wenn dein Ansatz so aussieht, als ob du lang genug versucht hättest...
            Ich wollte eigentlich nur wissen, was an meinem Regulären Ausdruck falsch ist.


            Ich freue mich über jeden Tipp und alternative Lösungswege.

            Kommentar


            • #7
              Wie würdest du die Daten denn speichern, wenn beliebig viele Zahlen gespeichert werden müssen ohne eine weitere Zuordnungstabelle zu erzeugen?
              s. Jahlives

              Die 2 (oder auch jede andere Zahl) kann nicht nur am Ende stehen, sondern auch am Anfang, oder irgendwo in der Mitte.
              Wieso sagst du das nicht schon im Eingangsposting?

              Kommentar


              • #8
                Speichere die Daten kommasepariert und verwende dann die MySql Fkt IN()
                Genau das brauche ich. Leider funktioniert es noch nicht. Von welchem Typ muss mein Feld sein (zur Zeit ist es noch ein VARCHAR)?

                Kommentar


                • #9
                  Warum du auf eine Normalisierung verzichtest, kann ich leider nicht verstehen.

                  Kommentar


                  • #10
                    So, ich habs hinbekommen. Ich hatte nur die Klammern nach der IN-Funktion vergessen. Das Feld kann also auch ein String sein.

                    Danke für den hilfreichen Tipp, jahlives.


                    @TobiaZ: Mit Normalisierung meinst du wohl das Anlegen einer weiteren Tabelle. Ich wollte das vermeiden, damit das Ganze übersichtlicher bleibt.

                    Kommentar


                    • #11
                      @TobiaZ: Mit Normalisierung meinst du wohl das Anlegen einer weiteren Tabelle. Ich wollte das vermeiden, damit das Ganze übersichtlicher bleibt.
                      Absoluter Schwachsinn!!

                      Kommentar


                      • #12
                        Absoluter Schwachsinn!!
                        Kannst du dich auch verständlich ausdrücken?

                        Kommentar


                        • #13
                          Original geschrieben von WebPSM
                          Kannst du dich auch verständlich ausdrücken?
                          War das nicht verständlich genug?

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

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

                          Kommentar


                          • #14
                            Übersichtlicher für wen? Für dich, der einmal in 100 Jahren über phpmyadmin eine einzelne Tabelle anguckt, weil er nicht in der Lage ist ne query abzusetzen, oder "übersichtlicher" für MySQL?

                            Kommentar


                            • #15
                              Kannst du dich auch verständlich ausdrücken?
                              Eine Normalisierung ist ist diesem Fall nicht nur schneller, sondern hilft dir auch die Daten zu verwalten.
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X