正则表达式:从基础到高级应用
1. 正则表达式基础
正则表达式除了字面字符外,还包含元字符,用于指定更复杂的匹配规则。常见的元字符有:^ $ . [ ] { } - ? * + ( ) | \,其他字符则被视为字面字符。不过,反斜杠字符在某些情况下用于创建元序列,也可让元字符被当作字面字符处理。
需要注意的是,许多正则表达式元字符在 shell 扩展时也有特殊含义。在命令行传递包含元字符的正则表达式时,必须用引号将其括起来,防止 shell 对其进行扩展。
2. 元字符的使用
2.1 任意字符(.)
点号(.)用于匹配任意字符。例如,使用以下命令:
[me@linuxbox ~]$ grep -h '.zip' dirlist*.txt bunzip2 bzip2 bzip2recover gunzip gzip funzip gpg-zip preunzip prezip prezip-bin unzip unzipsfx这里搜索包含.zip的行,由于正则表达式中的点号使匹配长度变为四个字符,所以zip程序未被匹配到。
2.2 锚点(^ 和 $)
脱字符(^)和美元符号($)在正则表达式中被视为锚点。^表示匹配必须从行首开始,$表示匹配必须在行尾结束。示例如下: