规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式。
正则表达式中用到的很多特殊字符在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地址
文件:
查询结果:
也可以用如下方式: