规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式。

正则表达式中用到的很多特殊字符在Shell中也有特殊含义,只有用单引号括起来才能保证这些字符原封不动的传给grep命令,而不会被Shell解释到,(grep是一种查找过滤工具,找的是包含某一模式的行)。

grep正则表达式的Extended规范,Basic规范也有这些语法,只是字符?+{}|()应解释为普通字符,要表示上述特殊含义则需要加\转义。如果用grep而不是egrep,并且不加-E参数,则 应该遵照Basic 规范来写正则表达式。

前面的表格中有介绍? + {}的特殊含义,没有介绍到| 和()的特殊含义,介绍如下例子:

a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
下面举几个例子:

1、查找文件中得qq邮箱

Email文件:

查询结果:

 2.查找正确的IP地址

文件:

 查询结果:

也可以用如下方式:

 

posted on 2016-08-11 14:14  My_Blog_Days  阅读(173)  评论(0)    收藏  举报