Home  >  Article  >  Detailed explanation of regular expressions for IP addresses

Detailed explanation of regular expressions for IP addresses

coldplay.xixi
coldplay.xixiforward
2020-06-12 09:12:287479browse

Detailed explanation of regular expressions for IP addresses

Detailed regular expression analysis of IP address

The IP address is 32 bits long and divided into 4 segments , each segment is 8 digits, represented by decimal numbers. The range of each segment is 0~255, and segments are separated by English periods "." For example: the IP address of a certain computer is 10.11.44.100.

Analyze the composition characteristics of IP addresses: 250-255, 200-249, 0-199.

These three situations can be considered separately,

250-255: Features: Three digits, the hundreds digit is 2, the tens digit is 5, the ones digit is 0~5, expressed with regular expressions The formula can be written as: 25[0-5]

200-249: Features: Three digits, the hundreds digit is 2, the tens digit is 0~4, the ones digit is 0~9, you can use regular expressions Written as: 2[0-4]\d

0-199: This can be continued to be split, which makes it simpler and clearer to write.

0-9: Characteristics: one digit, individual The digits are 0~9, which can be written using regular expressions: \d

10-99: Characteristics: two digits, tens digits are 1~9, and ones digits are 0~9, which can be written using regular expressions Written as: [1-9]\d

100-199: Features: Three digits, the hundreds digit is 1, the tens digit is 0~9, the ones digit is 0~9, it can be written using regular expressions :1\d{2}

So the regular expression for 0-99 can be written as [1-9]?\d, then 0-199 can be written as (1\d{ 2})|([1-9]?\d), so the regular expression from 0 to 255 can be written as (25[0-5]|2[0-4]\d|((1\d{2 })|([1-9]?\d)))

Finally, add a period to the first three paragraphs. You can use {3} to repeat it. Repeat the same match in the fourth paragraph to get the IP address. Regular expression:

((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))

Let’s interact with you:

Why is the three-digit match placed in front of the two-digit/one-digit number? Because one of the rules of regular expressions is: the first match has the highest priority.
2. 0.0.0.0 and 255.255.255.255 are legal IP addresses. Do you know why?
3. 192.169.01.108, a number with an extra 0 in front of it, is not legal here. Why is it like this?
4. Why is there ?: at the front? What's its use here?
5. If you find any errors in this expression, please leave a message to correct it!

Recommended tutorial: "IP"

The above is the detailed content of Detailed explanation of regular expressions for IP addresses. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:liqingbo.cn. If there is any infringement, please contact admin@php.cn delete