PHP nasıl regex kullanarak 0-255 numarayı maç?

5 Cevap php

/[0-9]+/ de 999 gibi aralığının dışında olanlar maç olacak

Nasıl arasında tam sayılar eşleşen bir düzenli ifade yazmak için 0~255?

5 Cevap

Ben yapardı:

$n >= 0 && $n <= 255

Regex iyi ama onlar bu gibi durumlarda önlenebilir.

Bir göz here:

000..255:       ^([01][0-9][0-9]|2[0-4][0-9]|25[0-5])$ 
0 or 000..255:  ^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$

İlk grup 0-99, ikinci bir tane 100-199, 200-249, üçüncü, dördüncü 250-255 maçlar

/[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]/

Basit çözüm, numara kapmak bir tamsayı dönüştürmek ve daha sonra <= 255 olan bir değer olduğunu test edin. Ancak really, really bunu yapmak için bir regex istiyorsanız, o zaman bu işe olurdu :

^([0-9]{1,2}|1[0-9]{1,2}|2[0-4][0-9]|25[0-5])$

Bütün durumlarda işe yaramadı neden Edit düzeltildi. Sadece bir tamsayı dize ayrıştırma ve tamsayı değeri <= 255 olup olmadığını test etmelisiniz Dürüst olmak gerekirse, bu.

Gerçekte, sadece 0-999 maç ve sonrasında değerlerini normalleştirmek, ama ... gerekir

/(25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([0-9][0-9])|([0-9]))/