dedlfix: Probleme mit regulärem Ausdruck

Beitrag lesen

Tach!

if (preg_match("/[1]{5,10}$/", $text))
echo "Zahl ist drin!";

Das ist eine falsche PHP Syntax!
Das, was bei Zutreffen der Bedingung passieren soll, steht in geschwungenen Klammern!

Nein, wenn nur eine Anweisung folgt, braucht es keine geschweiften Klammern.

Dein Ausdruck sagt: Eine Zahl aus 5-10 Ziffern, weder davor noch danach darf etwas stehen.

Etwas genauer gesagt, nach dem Anfang sollen die 5 bis 10 Ziffern folgen und danach das Ende.

Du willst aber, dass auch davor oder danach etwas stehen darf. Also ein _beliebiges Zeichen_ (dafür steht der Punkt) darf _kein_ Mal oder beliebig oft (dafür steht der Stern) vorkommen. Deshalb:
if ( preg_match('~^.*[0-9]{5,10}.*$~', $text) )

Es reicht auch, im Originalausdruck einfach das ^ und $ wegzulassen. (Und [0-9] könnte man noch zu \d abkürzen.)

dedlfix.


  1. 0-9 ↩︎

0 45

Probleme mit regulärem Ausdruck

DocSky
  • php
  1. 0
    Melvin Cowznofski
    1. 0
      dedlfix
      1. 0
        Melvin Cowznofski
        1. 1
          Gunnar Bittersmann
          1. 0
            Christian Kruse
          2. 0
            dedlfix
          3. 0

            regexp: \d != [0-9]

            seth
            • programmiertechnik
      2. 0
        dedlfix
        1. 0
          Melvin Cowznofski
          1. 0
            Gunnar Bittersmann
            1. 0
              Melvin Cowznofski
              1. 0
                Matthias Apsel
                1. 0
                  Melvin Cowznofski
                  1. 0

                    Noch immer keine Lösung?

                    Melvin Cowznofski
                    1. 0
                      dedlfix
                      1. 0
                        Melvin Cowznofski
                        1. 0
                          dedlfix
                          1. 0
                            Melvin Cowznofski
                            1. 0
                              dedlfix
                              1. 0
                                Melvin Cowznofski
                                1. 0
                                  dedlfix
                                  1. 0
                                    Melvin Cowznofski
                                    1. 0
                                      dedlfix
                                      1. 0

                                        Frage nun beantwortet!

                                        Melvin Cowznofski
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        Melvin Cowznofski
                        1. 0
                          dedlfix
                        2. 0
                          misterunknown
                2. 0
                  dedlfix
                  1. 0

                    Postleitzahlen

                    Matthias Apsel
                    • sonstiges
                    1. 0
                      Tobias Hahner
                      1. 0
                        Matthias Apsel
                        1. 0
                          Tobias Hahner
                          1. 0
                            Matthias Apsel
                            1. 0
                              Tobias Hahner
                            2. 0
                              Der Martin
              2. 0
                Gunnar Bittersmann
    2. 0
      Gunnar Bittersmann
      1. 0
        Melvin Cowznofski
      2. 0
        DocSky
    3. 0
      DocSky
      1. 0
        Gunnar Bittersmann
      2. 0
        dedlfix
  2. 0

    5- bis 10-stellige zahl in string matchen

    seth