Reputation: 2809
How do i write regex statement for only numbers between 0 and 255? 0 and 255 will be valid for the statement.
Upvotes: 1
Views: 13062
Reputation: 11182
Try a negative look behind:
(?<!\-)\b0*([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
Explanation
<!--
(?<!\-)\b0*([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b
Options: ^ and $ match at line breaks
Assert that it is impossible to match the regex below with the match ending at this position (negative lookbehind) «(?<!\-)»
Match the character “-” literally «\-»
Assert position at a word boundary «\b»
Match the character “0” literally «0*»
Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the regular expression below and capture its match into backreference number 1 «([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])»
Match either the regular expression below (attempting the next alternative only if this one fails) «[0-9]{1,2}»
Match a single character in the range between “0” and “9” «[0-9]{1,2}»
Between one and 2 times, as many times as possible, giving back as needed (greedy) «{1,2}»
Or match regular expression number 2 below (attempting the next alternative only if this one fails) «1[0-9]{2}»
Match the character “1” literally «1»
Match a single character in the range between “0” and “9” «[0-9]{2}»
Exactly 2 times «{2}»
Or match regular expression number 3 below (attempting the next alternative only if this one fails) «2[0-4][0-9]»
Match the character “2” literally «2»
Match a single character in the range between “0” and “4” «[0-4]»
Match a single character in the range between “0” and “9” «[0-9]»
Or match regular expression number 4 below (the entire group fails if this one fails to match) «25[0-5]»
Match the characters “25” literally «25»
Match a single character in the range between “0” and “5” «[0-5]»
Assert position at a word boundary «\b»
-->
Upvotes: 1
Reputation: 4394
You can find some numeric ranges here:
http://www.regular-expressions.info/numericranges.html
Your example would be:
^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$
Upvotes: 10