Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

preg_match: 2 bis 5 Zahlen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
mcchaos
PostRank 9
PostRank 9
Beiträge: 1414
Registriert: 27.07.2004, 19:18

Beitrag von mcchaos » 26.01.2006, 13:46

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?

Anzeige von ABAKUS

von Anzeige von ABAKUS »


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

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 26.01.2006, 14:20

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 :)

mcchaos
PostRank 9
PostRank 9
Beiträge: 1414
Registriert: 27.07.2004, 19:18

Beitrag von mcchaos » 26.01.2006, 14:25

Super, danke!

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


Caterham
PostRank 5
PostRank 5
Beiträge: 329
Registriert: 20.09.2004, 19:12

Beitrag von Caterham » 26.01.2006, 14:37

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.

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 26.01.2006, 14:47

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 :)

mcchaos
PostRank 9
PostRank 9
Beiträge: 1414
Registriert: 27.07.2004, 19:18

Beitrag von mcchaos » 27.01.2006, 09:42

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!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag