正则表达式与扩展正则表达式区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式与扩展正则表达式区别相关的知识,希望对你有一定的参考价值。
最近在学习正则表达式时,遇到了一些问题,究其原因是正则表达式与扩展正则表达式的区别没有弄清楚 正则表达式与扩展正则表达式类似,只是扩展正则表达式表达更加简单
正则表达式需要打 \ 转义字符 来表示某些字符的意思,而扩展正则表达式则不需要:
\{m} 正则表达式表示至少表示前面的字符m次 {m} egrep一样
\? 正则表达式表示前面的字符0或1次 ? egrep一样
\+ 正则表达式表示前面的字符至少一次 + egrep一样
\(\) 正则表达式表示分组 () egrep一样
\| 正则表达式表示或 | egrep一样
其中一个问题就是IP地址不知道该如何来表示
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。
IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。
例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
IP地址(英语:Internet Protocol Address)是一种在Internet上的给主机编址的方式,也称为网络协议地址。
常见的IP地址,分为IPv4与IPv6两大类。
IP地址编址方案:IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,
其中A、B、C是基本类,D、E类作为多播和保留使用。
IPV4就是有4段数字,每一段最大不超过255。由于互联网的蓬勃发展,IP位址的需求量愈来愈大,
地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,拟通过IPv6重新定义地址空间。
IPv6采用128位地址长度。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,
还考虑了在IPv4中解决不好的其它问题。
扩展正则表达式表示:
"\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
解释:用第一个括号里的数字表示 (个位数|十位数|以一开头的三位数|200-049|250-255)
用第二个括号表示 ((数字).引用)
后面的打括号表示引用次数 为3 x(xx).x(xx).x(xx).
最后一个括号表示 x(xx)
总的命令结果表示 x(xx).x(xx).x(xx).x(xx)
注:四个xxx的范围已经限定
实例:
ifconfig | "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
inet 172.18.250.78 netmask 255.255.0.0 broadcast 172.18.255.255
inet 192.168.6.131 netmask 255.255.255.0 broadcast 192.168.6.255
inet 127.0.0.1 netmask 255.0.0.0
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
以上是关于正则表达式与扩展正则表达式区别的主要内容,如果未能解决你的问题,请参考以下文章