Linux下正则表达式基础
1 什么是正则表达式
正则表达式(REGEXP:REGular EXPression)正则表达式里面的字符不是做本身的意义,通常是做通配,锚定的等特殊意义;并且比通配符更能精确的描述检索文本的需要。它是对字符串操作的一种逻辑公式,通俗的说就是对字符及很多字符的组合结合自身法则组合成一个规则的字符串(即过滤条件)通常把这些由字符或者是正则表达式的字符组合起来的过滤文本过滤条件叫做模式(pattern)。 正则表达式主要应用在文本方面,可以方便的处理文本内容,实现我们对查找一些文本内容的需要;正则表达式灵活性、逻辑性和功能性很强,它的都是由一些普通字符(包括大小写的字母和数字和一些元字符(由特殊字符组成) 2 grep简介 grep:使用基本正则表达式定义的模式来过滤文本的命令,并将符合模式的文本行显示出来(做部分匹配,匹配时整行有部分被匹配到时,显示整行)egrep是grep的扩展,支持扩展正则表达式的元字符 grep常用选项: -i:不区别大小写 --color查找出来的颜色显示 -v:显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 —E:使用扩展正则表达式 -A:当某一行被grep命令匹配到以后,不但显示这一行还可以显示这一行后面的多少行,后面通常跟数字,显示匹配到匹配到的这一行的后面那几行(即数字是代表行数的) -B:与-A相似后面通常跟数字显示匹配到的这一行的前面那几行(即数字是代表行数的) -C:与-A相似后面通常跟数字显示匹配到的这一行的前后那几行(即数字是代表行数的) 3 正则表达式的分类及字符介绍 3.1 正则表达式的分类 正则表达式分为两类分别是:(1)基本正则表达式----Basic REGEXP (2)扩展正则表达式----Extended REGEXP 3.2 正则表达式的字符 3.2.1 基本与扩展字符共同之处 (1)字符匹配 .:表示匹配任意单个字符 例如:grep “.a.” 表示查找字母a有带有个字符如同 a1 ab ar a0等 []:表示匹配指定范围内的任意单个字符 例如:grep “[:space:]” FILE查找带有空白符的文本行 [:space:]表示所有的空格字符 [:punct:]标点符号集合 [a-z]或[:lower:]:小写字母 [A-Z]或[:upper:]:大写字母 [:slpha:]:大小写字母 [0-9]或[:digit:]:数字 [:alnum:]:数字和大小写字母 [^]:表示指定范围以外的任意单个字符 例如:grep “[^[:space:]]” FILE查找带有非空白符的文本行 (2)次数匹配: *:表示匹配其前其前面的字符0次一次或多次 例如:grep “b*” FILE 查找带有b字母并且后带有任意个b的文本行 ?::表示匹配其前面字符0或1次 例如:grep “ab?” FILE 查找带有ab字母并且b后又跟一个或0个b的文本行 .*:用于基本正则表达式,表示任意长度的任意字符 例如:grep “a.*” FILE字母a后跟任意字符的文本行 (3)位置锚定 ^:锚定行首,此字符后面的任意内容必须出现在行首 例如:grep “^h” FILE 查找以小写字母h开头的行 $:锚定行尾,此字符前面的任意内容必须出现在行尾 例如:grep “h$” FILE 查找以小写字母h结尾的文本行 ^$:空白行 <或b:锚定词首,其后面的任意字符必须作为单词首部出现 >或b:锚定词尾,其前面的任意字符必须为单词的尾部出现 例如:grep “bhib” FILE 查找带有hi单词的文本行
(编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |