资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 正则表达式,什么是正则表达式?,正则表达式是一种“匹配”字符串的方法,以“行”为单位进行字符串的处理,通过一些特殊符号的辅助,可以让用户轻松搜索和替换特定字符串。,例如:,grep mail/etc/rc.d/*,正则表达式是一种“表示法”。,正则表达式的用途,分析系统日志信息,筛选垃圾邮件,搜索引擎的关键词匹配,.,正则表达式适用于所有与字符串匹配相关的工作!,grep,命令,作用:分析一行数据,若其中包含所需的部分,则将该行数据取出。,格式:,$grep-acinv,搜索字符串,filename,参数:,-a,:将二进制文件以文本文件的方式搜索数据,-c,:计算找到,搜寻字符串,的次数,-i,:忽略大小写的不同,所以大小写视为相同,-n,:输出行号,-v,:反向选择,亦即显示出没有,搜寻字符串,内容,的那一行!,选取命令,grep,命令,例如:,$last|grep root,$last|grep-v root,$last|grep root|cut-d f 1,选取命令,示例文件,基础正则表达式,搜索指定字符串,例如:,$grep-n the regular_express.txt,$grep-vn the regular_express.txt,$grep-in the regular_express.txt,基础正则表达式,利用,来搜索集合字符,例如:,$grep-n taest regular_express.txt,$grep-n oo regular_express.txt,$grep-n goo regular_express.txt,$grep-n a-zoo regular_express.txt,$grep-n 0-9 regular_express.txt,表示不包含!,基础正则表达式,行首与行尾字符,$,例如:,$grep-n the regular_express.txt,$grep-n a-z regular_express.txt,$grep-n a-zA-Z regular_express.txt,$grep-n.$regular_express.txt,$grep-n$regular_express.txt,$grep-v$/etc/syslog.conf|grep-v#,基础正则表达式,任意一个字符(,.,)与重复字符(,*,),例如:,$grep-n g.d regular_express.txt,$grep-n ooo*regular_express.txt,$grep-n goo*g regular_express.txt,$grep-n g*g regular_express.txt,$grep-n g.*g regular_express.txt,$grep-n 0-90-9*regular_express.txt,.,表示仅有一个字符,*,表示重复,0,次或多次,字符,基础正则表达式,限定连续重复字符范围,例如:,$grep-n o2 regular_express.txt,$grep-n go2,5g regular_express.txt,$grep-n go2,g regular_express.txt,扩展正则表达式,重复“一个或一个以上”的某一个字符:,+,例如,$,egrep,-n go+d regular_express.txt,搜索,(god)(good)(goood).,等等的字符串。,“,o+,”,代表“一个以上的,o,”。,扩展正则表达式,出现“零个或一个”的某一个字符:?,例如,$egrep-n go?d regular_express.txt,搜寻,(gd)(god),这两个字串。,那个,o?,代表“空的或,1,个,o,”。,扩展正则表达式,用或的方式找出某几个字符串:,|,例如,$egrep-n gd|good regular_express.txt,搜寻,gd,或,good,这两个字串,“,|,”表示或者。,扩展正则表达式,找出“组合”字符串,:(),例如,egrep-n g(la|oo)d regular_express.txt,搜寻,(glad),或,(good),这两个字符串。,“,|,”表示或者。,又如:,$echo AxyzxyzxyzxyzC|egrep A(xyz)+C,
展开阅读全文