正则表达式

正则表达式:
-简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位进行处理
-通过特殊的符号的辅助,我们可以快速的过滤,替换某些特定的字符串

-运维工作中会有大量访问日志,错误日志,如何能够快速过滤出我们需要的内容,靠正则表达式
-awk,sed,grep三剑客配合正则表达
基础正则表达式
1)^word    搜索以word开头的
2)word$    搜索以word结尾的
-以grep为例:[root@localhost ~]# grep "^I" oldboy.txt       参数:-i不区分大小写
3).              代表且只能代表任意一个字符:[root@localhost ~]# grep "bl.g" oldboy.txt
4)                转译符号,让有特殊意义的字符还原原型
5)*              重复0个或多个前面的一个字符   例子:o*
6).*             匹配所有字符
7)[]             字符集和的重复特殊字符的符号  例子:[root@localhost ~]# grep "b[lo]og" oldboy.txt
8)[^word]   匹配不不包含^后的任意字符的内容   例子:[root@localhost ~]# grep "[^oldboy]" oldboy.txt
9)a{n,m}    重复n到m次,前一个重复字符       在这里注意是转译{}[root@localhost ~]# grep "490{2,3}448" oldboy.txt
         {n,}     重复至少n次,前一个重复字符       这3个用egrep不用转译
        {n}        重复n次,前一个重复字符
扩展的正则表达式        注意扩展表达式得用egrep才可以执行命令 或-E
1)+      重复一个或一个以上前面的字符        [root@localhost ~]# egrep "490+448" oldboy.txt
2)?     重复0个或一个前面的字符
3)|        用或的方式查找多个符合的字符串     [root@localhost ~]# egrep "3306|1521" /etc/services
4)()      找出“内容”字符串                      [root@localhost ~]# egrep "490(0|00)448" oldboy.txt

 

原文地址:https://www.cnblogs.com/zrxuexi/p/10864209.html