Chinaunix首页 | 论坛 | 博客
  • 博客访问: 319434
  • 博文数量: 78
  • 博客积分: 2611
  • 博客等级: 少校
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-10 18:02
文章分类

全部博文(78)

文章存档

2014年(1)

2012年(1)

2011年(2)

2010年(8)

2009年(4)

2008年(14)

2007年(48)

我的朋友

分类:

2010-04-17 09:32:57

   正则表达式学过好多遍了,真正用起来就忘了,还得查个半天,跟shell用起来一样。因为没有记笔记的习惯,所以好多东西每次还得重头来过。确实比较费劲。还是记录下来以后便于查询。
   正则用的相当多,shell、perl、awk、grep、sed这些等等,了解的就不必说了。
   注意点:正则表达式与shell的文件通配是两码事。总是搞混。在shell中键入*.pm来匹配所有以pm结尾的文件就是典型的文件名通配。使用grep类似的工具,必须用单引号将正则表达式括起来,否则会被shell当成文件名通配。*在文件名通配中代表任意字符,在正则中代表是任意个前面字符。如 rewrite规则中最常用的正则.*来代替任何字符。而不是通配中的*就可以。
   正则中的两个元字符:“.” (1个字符,换行除外“\n”)、“\”(反义)
   正则中的三个量词:“*”(前面字符0个或多个)、 “+”(前面字符的1个或多个)、 “?”(前面字符出现0词或1次)。
   分组与引用。每个匹配式用()引起来,如/(abc)+/ 、rewrite用的(.*)后面用$n引用(n表示第几个分组,从1开始)。正则中用\n来引用。如(.)\1匹配两个相同的字符,如aa。(..)\1匹配两个字符重复一次,如abab。(.)(.)\1\2跟前面的一样,(.)(.)\2\1颠倒顺序,如abba。((.)(.)\3\2)\1颠倒顺序再重复,如abbaabba。最新表达方式是通过\g{1}类似这么来表达。
   几个缩写字符集简写:\d(数字)、\w(字母加_)、\s(空白符号)。一般来说没有单个出现的,想下\d+ 、\s+等。\D、\W、\S相反的意思。
|(或)。[]字符集如[0-9]。[^]不含字符集。如[^abc]这里是不含a或者b或者c的意思。[^(abc)]


阅读(640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~