Seite 1 von 1

preg_match: 2 bis 5 Zahlen

Verfasst: 26.01.2006, 13:46
von mcchaos
Hallo!

Ich würde gerne einen preg_match durchführen. Es soll getestet werden, ob ein Subpattern 2-5 Zahlen enthält. Gültig wäre also z.B.:

12
345
6789
12345

Mein Ansatz:
preg_match("/([0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9][0-9][0-9]|[0-9][0-9][0-9][0-9][0-9])/",
$sTxt);

Das geht, erscheint mir aber sehr unschön, vorallem, wenn die Abfrage noch länger wird.

1.) Gibt es eine kürze Schreibweise, um nach einer Zahl zu fragen?
2.) Gibt es eine kürze Schreibweise, um x bis y Wiederholungen einer Zeichenklasse abzufragen?

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Re: preg_match: 2 bis 5 Zahlen

Verfasst: 26.01.2006, 14:20
von robo
mcchaos hat geschrieben:Ich würde gerne einen preg_match durchführen. Es soll getestet werden, ob ein Subpattern 2-5 Zahlen enthält. Gültig wäre also z.B.:

12
345
6789
12345

Mein Ansatz:
preg_match("/([0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9][0-9][0-9]|[0-9][0-9][0-9][0-9][0-9])/",
$sTxt);
Das Pattern passt auf mindestens ... <zähl> ... 14 Ziffern oder mehr.
mcchaos hat geschrieben:1.) Gibt es eine kürze Schreibweise, um nach einer Zahl zu fragen?
\d
mcchaos hat geschrieben:2.) Gibt es eine kürze Schreibweise, um x bis y Wiederholungen einer Zeichenklasse abzufragen?
{x,y}

In deinem Fall also: /(\d{2,5})/

cu, Robo :)

preg_match: 2 bis 5 Zahlen

Verfasst: 26.01.2006, 14:25
von mcchaos
Super, danke!

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


preg_match: 2 bis 5 Zahlen

Verfasst: 26.01.2006, 14:37
von Caterham
Da du jedoch werder das rechts folgene Zeichen noch das Ende der Zeichenkette markierst, matched dann auch 123456, wobei in deiner Gruppe (Backreference) dann 12345 enthalten ist.

[0-9][0-9][0-9][0-9] dürfte eigentlich nicht matchen, da bei 6789 nach 67 ein Teilmatch auf [0-9][0-9] erfolgt ist, somit 89 auch auf [0-9][0-9] matched
Das Pattern passt auf mindestens ... <zähl> ... 14 Ziffern oder mehr.
Im Ergebnis ja, aber nicht durch die Notation von 14 mal [0-9], dort sind ja die oder-Pipes dazwischen.

Re: preg_match: 2 bis 5 Zahlen

Verfasst: 26.01.2006, 14:47
von robo
Caterham hat geschrieben:Da du jedoch werder das rechts folgene Zeichen noch das Ende der Zeichenkette markierst, matched dann auch 123456, wobei in deiner Gruppe (Backreference) dann 12345 enthalten ist.
Ich weiss ja nicht, durch was der OP die Ziffern begrenzt haben will. Hellsehen kann ich noch nicht. :-)
Caterham hat geschrieben:
Das Pattern passt auf mindestens ... <zähl> ... 14 Ziffern oder mehr.
Im Ergebnis ja, aber nicht durch die Notation von 14 mal [0-9], dort sind ja die oder-Pipes dazwischen.
Ups, die Pipes habe ich übersehen. Vielleicht brauche ich doch bald 'ne Brille. :-)

cu, Robo :)

preg_match: 2 bis 5 Zahlen

Verfasst: 27.01.2006, 09:42
von mcchaos
Ja, sorry, das Beispiel war zugegebenermaßen unvollständig, da der eigentliche Ausdruck links und rechts noch weitergeht. Ich wollte aber nicht vollends verwirren :wink:

Also nochmal danke!