dedlfix: Noch immer keine Lösung?

Beitrag lesen

Tach!

Vereinfacht gesagt: Bei ((a|b)(c|d)) würde es bei einem bd zu drei captures kommen: bd (1), b (2) und d (3). Bei ((?:a|b)(c|d)) fällt die Nummer 2 weg und es kommt zu zwei captures: bd (1) und d (2). Verstehe ich das so richtig?

So ist es.

Doch tatsächlich: ~(^|\D)\d{5,10}($|\D)~ funktioniert. Sehe ich es also richtig, dass das nun _endlich_ die korrekte und kürzest mögliche Form ist, damit es zu einem Treffer kommt bei einer Zahl mit 5-10 Stellen?

Bei höchstens einer solchen Zahl und es dürfen keine weiteren Ziffern im Text enthalten sein.

Wer sagt denn, dass da ein ?: stehen muss? Es geht auch wunderbar ohne. Nur ohne Klammern wird es nichts, weil auch das | gierig ist und nicht nach dem \D Halt macht.

Das wäre jetzt dann meine letzte Unklarheit. Wie meinst Du das mit dem "gierig sein" ohne Klammern? ~(^|a)bc~ matcht a und abc. ~^|abc~ matcht _alles_, weil das sagt aus, dass es entweder mit abc oder mit einem Anfang anfangen muss. Wolltest Du darauf hinweisen?

^|\D\d{5,10} - Das | hat links das ^ und rechts nicht nur das \D, sondern den gesamten Rest. Es ist nicht so, dass wenn links nur ein Zeichen steht, rechts auch nur ein Zeichen genommen wird. Es ist quasi gierig, dass rechts (ebenso wie auch links) so viel wie möglich genommen wird. Das muss man mit einer Gruppierung (auch wenn man das Gruppierergebnis nicht extra braucht) begrenzen.

(^|a)bc matcht abc an beliebiger Position oder bc am Anfang. ^|abc matcht alles, weil alles einen Anfang hat und damit das Muster schon erfüllt ist.

dedlfix.

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