正则表达式基础知识和ipv4的正则表达式

原创 2012年03月23日 19:56:54
正则表达式基础知识
http://deerchao.net/tutorials/regex/regex.htm#metacode
句点符号”.”:		匹配除了换行符意外的任意一个字符
方括号”[ ]”:		匹配方括号之内的任意一个字符
或符号”|”: 		表达逻辑或的关系
星号”*” : 		出现0次或者多次
加号”+” :  		出现一次或者多次
问好”?” :  		出现0次或者一次
花括弧”{n}”:		恰好出现n次
花括弧”{n,m}”:	出现n次到m次
连字符”-”:		表示一个范围
转义字符”\”:	和编程语言中的转义字符意义一致
否符号”^”: 		表示不想要匹配的字符
空白符号”\s”:	匹配所有的空白符号
圆括号”()”:		创建一个组
常用的符号:
\d    	 		[0-9]
\D				[^0-9]
\w				[A-Z0-9]
\W				[^A-Z0-9]
\s		 		[\t\n\r\f]
\S				[^\t\n\r\f]
在介绍分组的时候,举了一个ip地址匹配的例子:
((2[0-4]/d|25[0-5]|[01]?/d/d?)/.){3}(2[0-4]/d|25[0-5]|[01]?/d/d?)
这个表达式的/d/d?)处应该修改为/d?/d 分析如下:
1)IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。以255.226.168.1为例,可以分析出IP地址的组成特点,250——255、200——249、0——199
2)
250——255,用正则可以写成:25[0-5];
200——249可以这样写:2[0-4]/d;
0——199有些麻烦,不过可以继续分拆,这样写起来更加简单明了,0——9、10——99、100——199,这样分开考虑,就得到了三个式子:/d、/d/d(有冗余)、1/d/d,这三个式子我们可以像合并同类项一样把它们合并到一起:[01]?/d?/d
这样,一段地址的表达式就是:2[0-4]/d|25[0-5]|[01]?/d?/d 
后三段每段数字之前都有一个“.”号,合并起来考虑,前三段数字可以写到一起,第四段单独写,合并得到ip地址匹配的正则表达式:
((2[0-4]/d|25[0-5]|[01]?/d?/d)/.){3}(2[0-4]/d|25[0-5]|[01]?/d?/d)

相关文章推荐

用正则表达式匹配IPV4地址

写一个正则表达式匹配IPV4地址说容易也容易,说难也难,取决于需要的准确度。简单起见,这里只考虑点分十进制的IPV4地址。 最简单的方式是把IPV4地址看做四段十进制数字串,由三个点号隔开,可...

C#正则表达式基础知识

  • 2016年01月09日 11:53
  • 995KB
  • 下载

正则表达式基础知识

  • 2011年09月18日 13:10
  • 78KB
  • 下载

第7章 sed、gawk介绍与正则表达式-----------(sed编辑器基础知识)

7.3sed编辑器基础知识          成功使用sed编辑器的关键是要了解其大量的命令和格式,这些命令和格式有助于自定义文本编辑。 7.3.1更多替换选项          替换标记要放在...

PHP正则表达式基础知识

  • 2009年07月30日 09:53
  • 2KB
  • 下载

正则表达式入门基础知识

  • 2008年11月17日 09:09
  • 181KB
  • 下载

python基础知识——正则表达式,

在学习Python的爬虫技术时,抓取到网页之后,需要从网页上复杂的代码中提取出目标字符串,那么怎样从成千上万的复杂代码中提取出自己想要的字符串呢?Python中提供了一种很好的方法:正则表达式。 所...

正则表达式-基础知识

  • 2012年07月19日 17:11
  • 1.54MB
  • 下载

正则表达式-基础知识

  • 2011年07月26日 11:23
  • 5KB
  • 下载

Python正则表达式基础知识总结

一、正则表达式概念 Ÿ   使用单个字符串来描述匹配一系列符合某个句法规则的字符串 Ÿ   是对字符串操作的一种逻辑公式 Ÿ   应用场景:处理文本和数据 Ÿ   正则表达式过程:依次拿出表达...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正则表达式基础知识和ipv4的正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)