ugrás a tartalomhoz

Időpontra illeszkedő regex

Max Logan · 2007. Jan. 26. (P), 14.37
Tudom, hogy jó dolog a regex, már vettem is egy könyvet a témában. Sajnos időm nincs most belemélyedni a regex világába, meg hát én a munkahelyemen vagyok a könyv meg otthon. Keresgéltem a neten, vbence leírását is nézegettem (amiben egyébként sok az elgépelés), de nem találtam rá a megfelelő megoldásra.

Tehát a feladata a következő:
Kellene egy olyan regex, ami illeszkedik egy 24 órás időpontra HH:MM formában. Adott egy maximum 5 karakter hosszú string, amit vizsgálni kell. Jó lenne, ha nem kellene 9:30-hoz 09:30-at írni.

Én próbálkoztam már többféleképpen, de nem akart helyesen működni. preg_match-csel szeretném használni (ezt ezért tartom fontosnak leírni, mert ugye amit én ereg-gel használtam és ment (bár hibásan), arra a preg_match kaptásból hibát írt, aminek okát nemtom ...).
 
1

pl.:

tiku I tikaszvince · 2007. Jan. 26. (P), 15.26
talán segít:
preg_match('/^[0-2]?[0-9]:[0-5]?[0-9]$/m', $time)
tikuVoltam
2

kicsit bonyolultabb

gex · 2007. Jan. 26. (P), 15.55
szólni akartam, hogy a percnél nem lehet egy számjegy (pl: 5:2), erre ez lett belőle... :]

preg_match('/^(([01]?[0-9])|(2[0-3]))[.:][0-5][0-9]$/m', $time)


a pont pedig csak azért van benne, hátha valaki tud helyesen is írni:
Ha az időpontot számjegyekkel adjuk meg, az óra és a perc közé (szóköz nélkül) pontot teszünk: 10.35 stb. Ehhez a formához a toldalékokat kötőjellel kapcsoljuk: 10.35-kor, 10.35-ig, 10.35-ös stb.
4

Thx

Max Logan · 2007. Jan. 29. (H), 10.22
Működik a cucc
3

ereg vs preg

gex · 2007. Jan. 26. (P), 16.02
amit én ereg-gel használtam és ment (bár hibásan), arra a preg_match kaptásból hibát írt, aminek okát nemtom

egy perjel kell a minta elejére és végére, ez a legfőbb különbség:
ereg('minta', $var);
preg_match('/minta/módosítók', $var);