正则表达式

正则表达式(Regular Expression,RE)就是由一系列特殊字符组成的字符串。其中每个特殊字符都被称为元字符,这些元字符并不表示它们字面上的含义,而是被解释为一些特定的含义。

正则表达式是由普通字符和元字符共同组成的集合,这个集合用来匹配(或指定)模式。正则表达式的主要功能是文本查询和字符串操作,正则表达式可以匹配文本的一个字符或字符集合。

例如,a、b、1、2等字符属于普通字符,普通字符可以按照字面意思理解,如a只能理解为英文的小写字母a,没有其他隐藏含义。而*、^、[ ]等元字符,shell赋予了它们超越字面意思的意义,如*符号的字面意义只是一个符号,而实际上却表示了重复前面的字符0次或多次的隐藏含义。

正则表达式的组成

一个正则表达式包含下列一项或多项。

  • 一个字符集:这里所指的字符集只包含普通字符,这些字符只表示它们的字面含义。正则表达式的最简单形式就是只包含字符集,而不包含元字符。

  • 锚:锚指定了正则表达式所要匹配的文本在文本行中所处的位置,如^和$就是锚。

  • 修饰符:它们扩大或缩小(修改)了正则表达式匹配文本的范围。修饰符包含星号、括号和反斜杠。

正则表达式中常用的一些符号以及对应的意义见下表

正则表达式中符号含义

其中:

*

.

^

$

[]

案例

从输出可以看出,精确匹配了test.txt文件中所有的非字符内容。

注:使用grep匹配正则时,正则要用双引号引起来

Last updated