Home >Common Problem >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!