IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。
IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。
IP地址格式
IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位 用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。 // 0.0.0.0 ~ 255.255.255.255
根据规则:每段相同,范围都在 0 ~ 255
0~255 对应的正则表达式为 (2(5[0-5]|[0-4]d))|[0-1]?d{1,2}
下面简单介绍它的组成
2(5[0-5]|[0-4]d)
匹配:200 ~ 255[0-1]?d{1,2}
匹配:0 ~ 199
使用
- 提取一段内容中的所有IP地址
((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})){3}
- 判断字符串是否是IP地址
^((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})){3}$
下边是各种语言的程序代码
js
var pattern = /((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})){3}/g, str = ''; console.log(pattern.test(str));
php
$str = ''; $isMatched = preg_match_all('/((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})){3}/', $str, $matches); var_dump($isMatched, $matches);
package main import ( "fmt" "regexp" ) func main() { str := "test" matched, err := regexp.MatchString("((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}", str) fmt.Println(matched, err) }
python
import re pattern = re.compile(r'((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})){3}') str = '' print(pattern.search(str))
java
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main(String args[]) { String str = ""; String pattern = "((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(str); System.out.println(m.matches()); } }
obj-c
NSString *str = @""; NSString *pattern = @"((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}"; NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern: pattern options: nil error: &error]; NSArray *match = [regex matchesInString: str options: NSMatchingCompleted range: NSMakeRange(0, [str length])]; if (match.count != 0) { // ... }