码迷,mamicode.com
首页 > 其他好文 > 详细

初学正则表达式

时间:2014-12-13 12:15:33      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:正则表达 grep


/* 规则表达式使用
 * 注:使用的工具是egrep  windows下面可以使用grep工具安装及使用看另外一个博客,地址在本文的尾部:
 * 注:一些常用的院子符及作用可以看文章尾部的截图(内容来自《精通正则表达式》第三版)<a target=_blank href="http://pan.baidu.com/s/1hq3S64O">下载地址百度网盘</a></a>
 * 在字符组内部原字符的定义是不一样的。例如:. 点号在字符组外部是元字符,在字符组内部则是普通的字符。
 * 							   - 连字符只有在字符组内部才是元字符在外部则不是。
 * 不要混淆多选项和字符组。字符组[abc]和多选项(a|b|c)有不同的意义,字符组只能匹配一个字符,多选项可以匹配任意长度的字符。
 * 					例如:(ab|ac|ad)
 * 排除型字符组,表示所有未列出的字符。[^x]的意思表示匹配一个不是x的字符并不包括空行。
 * 
 * -i 在匹配时忽略大小写。
 * 
 * 可选项(optional) ? 把他放在一个字符的后面表示测出允许出现该字符,也可以不出现。
 * 					例如: colou?r u可以出现也可以不出现。
 *                  改进:(July|Jul).(fourth|4th|4) 
 * 					     July?.(fourth|4(th)?)
 * + 号表示与之紧邻的元素出现一次或多次
 * * 号表示与之紧邻的元素出现任意多次或不出现
 * 		例子:<HR SIZE = 14>
 * 		表达式	<HR +SIZE *= *14 *>
 * 		解析:在HR和SIZE之间至少有一个空格,在等号两端可以有也可以没有空格,在14后面可以有任意数的空格
 * 		再进一步:SIZE的大小不一定是14可以是任意的大小
 * 		<HR +SIZE *= *[0-9]+ *>
 * 		再进一步:HR和SIZE的大小写也不一定
 * 		我们可以使用-i参数
 * 		再进一步:如果尺寸的参数是可选的,就是说可以没有尺寸只有<HR>,当然HR后面也可能有空格
 * 		<HR( +SIZE *= *[0-9]+)? *>
 * 		好了这个例子到此结束
 * 
 * 区间量词(interval quantifier): {min,max} 问好对应的区间量词是{0,1}
 * 括号及反向引用:例子如果我们先匹配重复的单词如:the the
 * 				方案:\<the +the\>
 * 				再进一步匹配任意字符:\<([A-Za-z]+) +\1\>
 * 注:支持反向引用的工具中,括号能记忆其中的子表达式匹配的文本,不论这些文本是什么,元子符\1都能记住它
 * 在一个表达式中可以使用\1 \2 \3 分别表示第1 2 3个括号中的内容
 * 
 * 转义:使用反斜杠\ 把元字符转换普通的字符 www.opengg.cn  www\.opengg\.cn
 * 注:转义在字符组内部无效
 * 匹配引号内的字符串   "[^"]*"  两端的引号开头和结尾的引号,[]中间的^"表示匹配出"外的所有字符 *表示任意多的非字符
 * 如果要匹配双引号中的引号,我们可以使用反斜杠\"来实现
 * 
 * 匹配HTTP/HTML URL
 * 例如:http://www.baidu.com/path.html
 * 分析:http://部分不变 .html可能存在 www.baidu.com部分可以这样匹配[-a-z0-9_.]+
 * 	   path部分[-a-zA-Z0-9_:@#%&*?=+,.!/~$]* .html这样\.html?
 * 写在一起就是这样  \<http:[-a-z0-9_.]+/[-a-zA-Z0-9_:@#%&*?=+,.!/~$]*\.html?\>
 * 
 * 匹配时间:9:17 am 12:12 pm  (十二小时制)
 * 简单匹配:[0-9]?[0-9]:[0-9]?[0-9] (am|pm)
 * 进一步细化:当小时是两位数的时候1[012]当小时是一位数的时候[0-9] 所以小时部分可以这样写(1[012]|[0-9])
 * 分钟数:[0-5][0-9]
 * 综合起来:(1[012]|[0-9]):[0-5][0-9] (am|pm)
 * 匹配时间(24小时制)
 * 小时部分:当第一位是0或1的时候[01][0-9]当小时部分是2的时候2[0-3]
 * 分钟部分不变和12进制一样
 * 综合起来:([01]?[0-9]|2[0-3]):[0-5][0-9]
 * 
 * */
 

windows下egrep的下载使用

bubuko.com,布布扣

bubuko.com,布布扣



初学正则表达式

标签:正则表达 grep

原文地址:http://blog.csdn.net/sunfeilong1993/article/details/41907497

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!