Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1801215
  • 博文数量: 286
  • 博客积分: 3713
  • 博客等级: 少校
  • 技术积分: 2275
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 09:47
个人简介

http://blog.chinaunix.net/uid/16979052.html

文章分类

全部博文(286)

文章存档

2018年(1)

2017年(16)

2016年(9)

2015年(17)

2014年(15)

2013年(112)

2012年(116)

分类: LINUX

2013-01-06 14:57:33

转义 —— 用元字符指代一类具有特性的字符的机制。一般通过中括号、小数点、反斜杠这些特殊符号(就是所谓的Meta Character,元字符)的序列来实现。 
中括号 —— 类似于之前介绍的通配符中的。比如:模板“[a-z]”可以匹配26个小写英文字母中的任何单一字符;模板“[^A-D]”可以匹配大写英文字母A-D之外的任何单一字符。 
小数点 —— 除了“换行”(\n)之外的任何单一字符。比如:模板“^.{5}$”可以匹配任何正好有5个字符的行。 
反斜杠序 —— 这是典型的转义序列:序列“\w”等效于“[a-zA-Z0-9_]”;序列“\W”则等效于“[^a-zA-Z0-9_]”。 



数量 —— 用来指定被匹配的字符(串)的数量。一般通过花括号、星号、加号和问号这些元字符来实现:
花括号—— 描述字符出现多少次将会被匹配。{m,n}表示m次或n次或两者之间的任意次数;{m,}表示大于等于m的次数;{,n}表示小于等于n的次数;{m}表示有且仅有m次。比如:模板“s{2,3}”可以匹配字符串“ss”、“sss”。 
星号 —— 意同{0,},即0次或任意正次数。比如:模板“As*”可以匹配字符串“A”、“As”、“Ass”。 
加号 —— 意同{1,},即1次或其他任意正次数。比如:模板“As+” 可以匹配字符串“As”、“Ass”但不能匹配“A”。 
问号 —— 要么有1次,要么有0次。比如:模板“as?\>” 可以匹配文本“a man as an ass”中的字符串“a”、“as”,但不能匹配“ass”或“an”。



位置 —— 用来匹配到指定位置的字符串。一般通过以下两对元字符来实现: 
^表示BOL(Begin of Line),$表示EOL(End of Line)。 
\<(反斜杠加一个小于号)——描述了这么一种位置:若有一个字符串处于它左边的空白或标点之右,该字符串将被“\<字符串”这样的模板匹配。比如:模板“\”的意义正相反,比如:模板“Windows\>” 将匹配“Windows 98”中的字符串“Windows”,但“Windows98”中的字符串“Windows”却不能被匹配。 
将一行的行首、行尾这些“看不见字符”的以及用于分割单词的某种空间,想象为可以某种“摸得着”的特殊字符,那么,这些特殊字符就是“^”、“$”、“\<”、“\>”,把那些原本难以表达的概念,转化为实体字符,然后将这种字符,安插在它们的对应位置,就没错了! 





逻辑。主要内容只有两个: 
小括号 —— []用来分组,即将被它括起来的字符串视为一个整体。 
管道符 —— |两项被管道符(|)黏结的字符串组成的模板,表示要么用左边一项字符串来匹配,要么用右边一项字符串来匹配。 
比如:可以用模板“^[0-9]{6}(1970|1972)[0-9]{8}$”匹配文本中所有其出生年份信息是
1970年或1972年的身份证号码行,当然可以可以模板“^[0-9]{6}197[02][0-9]{8}$”。 

阅读(624) | 评论(0) | 转发(0) |
0

上一篇:bonnie++工具介绍

下一篇:pid文件作用浅析

给主人留下些什么吧!~~