TLCL学习笔记|第二十章|正则表达式
(认知有限,如有不妥,还请告知,欢迎讨论)
元字符
^ $ . [ ] { } - ? * + ( ) | \
原义字符
除了元字符外的字符
在个别情况下,反斜杠会被用来创建元序列, 元字符也可以被转义为原义字符,而不是被解释为元字符。
在命令行中传递包含元字符的正则表达式的时候,需要 把元字符用引号引起来 , 这样可以阻止 shell 试图展开它们。
任何字符
使用 . 表示 在此位置的任意一个字符,比如任何字符
执行ls . | grep '.bin', 筛选出当前目录下,其文件名包含“bin”,且在“bin”之前还有一个任意字符的文件

锚点
使用 ^ 和 $ 符号,只有在文本行的开头(^)或末尾($)被找到时,才算发生一次匹配。
执行 ls /usr/bin | grep '^zip',列出/usr/bin目录下所有文件名开头为zip的文件;
执行 ls /usr/bin | grep 'zip$',列出/usr/bin目录下所有文件名开头为zip的文件;

待匹配字符集合
用[]从一个指定的字符集合中匹配单个字符
执行 ls . | grep 'pl[oa]', 列出当前目录下文件名中包含"pl",且“pl”后面的字母为o或a的文件

否定
用^表示否定
执行ls /usr/bin | grep '[^p]ta.',列出/usr/bin目录下所有文件名包含“ta”,且“ta”不在文件名最后,另外“ta”之前的字母不为“p”的文件;

正则表达式直接用在路径上

交替
用 | 表示否定

限定符
使用?匹配零个或一个元素

使用*匹配零个或多个元素

使用+匹配一个或多个元素

使用{}匹配特定个数的元素

=END=
=reference=
[1]billie66.github.io/TLCL/book/chap20.html