最近在学习正则表达式时,遇到了一些问题,究其原因是正则表达式与扩展正则表达式的区别没有弄清楚

	正则表达式与扩展正则表达式类似,只是扩展正则表达式表达更加简单
		
	正则表达式需要打 \ 转义字符 来表示某些字符的意思,而扩展正则表达式则不需要:
				\{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