学习新知识之前最起码要知道它是什么,同样学习正则表达式要先明白它的概念。
正则表达式:REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义而表示控制或通配的功能
看清!!!看清!!! 关键字: 元字符 通配 明白不?你就是来搞他俩的 好了重点来了
元字符:可分为 字符匹配 匹配次数 位置锚定 分组
次序明白了不?好 一个一个击毙
先说字符匹配 乍一看和通配符很像,(应该是近亲吧) 相同的不再赘述 来点不同的
.看见了不(长点心吧)我最前面写了一个点,这个意思是匹配任意单个字符,一个点代表一个字符,两个点代表两个字符,三个点…(聪明我就不说了),六个点不仅代表六个字符(此处省略n个字)
说到了点顺便说下转义:例 grep “…” file 本来是过滤三个字符但是 grep “.\..” file 就表示中间的点不代表任意字符显示时就是一个点,明白了不,把他的基本意义给转换了。
*********************************************************************************************
匹配次数:用在指定次数的字符后面,用于指定前面的字符要出现的次数
\? 匹配前面的字符0次或者1次 啥意思?就是前面可有可无 还不明白?来个例子
grep “ab\?” file \? 前面是谁? b对吧(聪明)也就是说b可有可无 明白了吧,结果是a开头,结尾是b或者没有 理解了吧
\+ 匹配其前面的字符至少一次 有了上面的例子就容易理解了,先搞明白\+前面是谁,前面的字符要至少出现一次
例: grep “ab\+” file \+前面是b吧,也就是说b至少要出现一次(最多不限哦)
好了 ,其他的都比较容易理解
位置锚定:对特定位置进行定位
这个就简单了就是说如果想匹配行首则加^(要加在前面),行尾的话则加$(加在最后)
分组\(\)将一个或多个字符捆绑在一起,当作一个整体进行处理
例:grep “hello\{2\}” file 想找连续出现两次hello这样是不行的,这样的结果会是 helloo hellooooo……
那这个时候就要用到分组了 grep “\(hello\)\{2\}” file 这样的结果才是hellohello 啥?还没懂 再来
红色为第一分组,蓝色为第二分组,这次明白了吧 ,有错误的地方请及时指出
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95162