正则表达式: Regual Expression, REGEXP

由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能;

一、正则表达式的意义

  • 处理大量的字符串
  • 处理文本

通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本,让工作高效。

通常Linux运维工作都要面临大量带着字符串的内容, 如:

  • 配置文件
  • 程序代码
  • 命令输出结果
  • 日志文件

且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因此正则表达式就出现了

  • 正则表达式是一套规则和方法
  • 正则工作时以单位进行,一次处理一行
  • 正则表达式化繁为简,提高工作效率
  • linux仅受三剑客(sed、awk、grep)支持,其他命令无法使用

正则表达式应用非常广泛,应用在如Python、Java、Perl等,Linux下普通命令无法使用正则表达式的,只能使用三剑客。

通配符是大部分普通命令都支持的,用于查找文件或目录,而正则表达式是通过三剑客命令在文件(数据流)中过滤内容的

Linux的三剑客

文本处理工具,均支持正则表达式引擎

  • grep:文本过滤工具,(模式: pattern)工具
  • sed: stream editor,流编辑器;文本编辑工具
  • awk:Linux的文本报告生成器(格式化文本),Linux上是gawk

三、正则表达式的分类 

Linux三剑客主要分两类

  • 基本正则表达式(BRE、basic regular expression)

对应的元字符有: ^  $ . [] *

  • 扩展正则表达式(ERE、extended regular expression) 
ERE在BRE基础上, 增加了: () {} ? + |

 3.1、基本正则表达式BRE集合

  • 匹配字符
  • 匹配次数
  • 位置锚定
     

3.2、扩展正则表达式ERE集合

注: 扩展正则必须要grep -E 才能生效

注:

grep命令需要使用参数-E即可支持正则表达式

egrep不推荐使用,使用grep -E替代

对于特殊字符可以加上"\"使其成为正常的字符
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐