资源描述:
《正则表达式课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、正则表达式的概念正则表达式RegularExpressions应用范围字符串匹配操作和替换操作举例:UNIX中的vimorepggrepyacclexawk其他:TurboPascal/VisualC/Word等等正则表达式的功能描述一个字符串模式注意正则表达式规则与文件名通配符规则不同正则表达式规则用于文本处理的场合文件名匹配规则用于文件处理的场合不同软件对正则表达式的定义可能会有些不同1正则表达式的特殊字符(元字符)6个元字符.*[^$其它字符与其自身匹配转义用反斜线可以取消特殊字符的特殊含义。如:正则表达end.只与字符串end.匹配2单字符正则表达
2、式长的正则表达式由单字符正则表达式构成的非特殊字符与其自身匹配如:a与a,b与b转义字符().*$^[\圆点(·)匹配任意单字符3单字符正则表达式:定义集合(1)基本用法在一对方括号之间的字符为集合的内容,如:单字符正则表达式[abcd]与a或b,c,d匹配圆点,星号,反斜线在方括号内时,代表它们自己如:[*.]可匹配3个单字符4单字符正则表达式:定义集合(2)用减号-定义一个区间如[a-d][A-Z][a-zA-Z0-9]减号在最后,则失去表示区间的意义[ad-]只与3个字符匹配用^表示补集^在开头,则表示与集合内字符之外的任意字符匹配如:[
3、^a-z]匹配任一非小写字母^不在开头,则失去其表示补集的意义如:[a-z^]能匹配27个单字符5单字符正则表达式的组合(1)串结如abc,[A-Z].[0-9]·星号(*)单字符正则表达式后跟*,匹配此单字符正则表达式的0次或任意多次出现例:正则表达式12*4与字符串1234不匹配,与1224,12224,14匹配例:正则表达式[A-Z][0-9]*此例中*作用的单字符正则表式为[0-9],代表[A-Z][A-Z][0-9][A-Z][0-9][0-9][A-Z][0-9][0-9][0-9],等等与A,A1,C45,D768匹配,与b64512,T56t不
4、匹配6单字符正则表达式的组合(2)例:正则表达式[Cc]hapter*[1-4]在*号前有一个空格,允许数字1-4之前有多个或者0个空格。可匹配Chapter2,chapter3等等。例:正则表达式a[i]*=*b[j]***c[k]匹配字符串a[i]=b[j]*c[k],容许等号和星号两侧有空格7正则表达式:$与^$在尾部时有特殊意义,否则与其自身匹配例:123$匹配文件中行尾的123,不在行尾的123字符不匹配例:$123与字符串$123匹配例:.$匹配行尾的任意字符^在首部时有特殊意义,否则与其自身匹配例:^printf匹配行首的printf字符
5、串,不在行首的printf串不匹配例:Hel^lo与字符串Hel^lo匹配例:在vi中使用:10,50s/^//g删除10-50行的每行行首的4个空格8grep在文件中查找字符串命名grep(Globalregularexpressionprint)语法grep模式文件名列表举例grepO_RDWR*.hps-ef
6、grepliangwho
7、grepliangls-l/
8、grep'^d'
9、wc–lgrep'[0-9]*'chapter1grep'[0-9][0-9]*'chapter19egrep在文件中查找字符串(1)特点:用扩展的正则表达式描述模式
10、圆括号():表示分组表示逻辑或的符号
11、与星号地位类似的+和?*号表示它左边的单字符正则表达式的0次或多次重复+号表示1次或多次?表示0次或一次模式举例(xy)*可匹配空字符串,xy,xyxy,xyxyxy(pink
12、green)与pink或green匹配[0-9]+不匹配空字符串,匹配长度至少为1数字串a?匹配零个或一个a10egrep在文件中查找字符串(2)命令举例egrep'(SEEK_
13、IPC_)'*.hegrep'[0-9]:[0-9][0-9](client
14、server)$‘egrep'[0-9]+'chapter111grep/egrep/fgr
15、epegrep在指定模式方面比grep更灵活,但算法需要更多的处理时间fgrep:快速grep按字符串搜索而不是按模式搜索。fgrep运算速度快,适合于从大量的数据中进行检索指定字符串,不可按模式查找12grep/fgrep/egrep选项选项-n显示时每行前面显示行号-v显示所有不包含模式的行-i字母比较时忽略字母的大小写例:grep-n__DATE__*.c查找含有正则表达式__DATE__的行,并打印行号当文件数超过一个时,除了输出行号,还输出文件名例:grep-v'[Dd]isable'dev.stat>dev.active取消文件中所有含有指定模式的
16、行,生成新文件例:grep-irich