Regex sorun - eksik maçlar

1 Cevap php

Burada kısa bir regex örnek:

preg_match_all('~(\s+|/)(\d{2})?\s*–\s*(\d{2})?$~u', 'i love regex  00– /   03–08', $matches);
print_r($matches);

Regex sadece '03-08 maçları ', ama benim niyetim uyan oldu yanı '00-'. Sorun nedir? Herkes açıklayabilir?

1 Cevap

Sonunda kısmı:

-\s*(\d{2})?$~u

Eğer sadece maç ve dize sonu arasındaki boşluk ve / veya isteğe bağlı olarak iki basamak olabileceği anlamına gelir. O ve dize sonu arasında başka şeyler var çünkü bu demektir 00- maç olamaz.

Kaldırmak Eğer düşündüğünüz gibi $, çalışması gerekir.