2010-05-06 19 views
5

/[0-9]+/ भी एक regex कि 0~255 के बीच वास्तव में संख्या से मेल खाता है लिखने के लिए सीमा से बाहर उन, 999PHP में regex का उपयोग करके मैं 0 से 255 तक नंबर कैसे मिलान करूं?

कैसे की तरह से मेल खाएगी?

+0

?, यानी 001, आदि –

+0

* (संबंधित) * http://stackoverflow.com/questions/2738762/unsigned-tinyint-in-php – Gordon

उत्तर

4

एक नज़र 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])$ 
3

आसान समाधान, संख्या हड़पने एक पूर्णांक में बदलने और फिर परीक्षण है कि यह मूल्य < = 255 है लेकिन हो सकता है अगर तुम सच में , वास्तव में यह करने के लिए एक regex चाहते हैं, तो इस काम करेगा:

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

संपादित कारण यह घ फिक्स्ड सभी स्थितियों में काम नहीं कर सकते हैं। ईमानदार होने के लिए, यही कारण है कि आपको केवल एक पूर्णांक में स्ट्रिंग को पार्स करना चाहिए और परीक्षण करना चाहिए कि पूर्णांक मान < = 255 है।

+1

यह ** ** ** 150 से 199 बीटीडब्ल्यू – YOU

+0

से मेल नहीं खाता है। मार्क: मेरा उत्तर अपडेट किया गया, धन्यवाद :) –

1

असल में, आपको 0-999 से मेल खाना चाहिए और बाद में मूल्यों को सामान्य बनाना चाहिए, लेकिन .. ।

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

या बस किसी भी पूर्णांक को पकड़ें के साथ/(\ d +) / –

16

मुझे क्या करना होगा:

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

Regex अच्छे हैं, लेकिन वे इस तरह के मामलों में बचा जा सकता है।

2

पहले समूह 0-99 से मेल खाता है, दूसरा एक 100-199, तीसरे 200-249, चौथे 250-255

/[0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]/ 
के साथ या अग्रणी शून्य के बिना
संबंधित मुद्दे