TLCL學習筆記|第二十章|正則表達式
(認知有限,如有不妥,還請告知,歡迎討論)
元字符
^ $ . [ ] { } - ? * + ( ) | \
原義字符
除了元字符外的字符
在個別情況下,反斜杠會被用來創(chuàng)建元序列, 元字符也可以被轉義為原義字符,而不是被解釋為元字符。
在命令行中傳遞包含元字符的正則表達式的時候,需要?把元字符用引號引起來?, 這樣可以阻止 shell 試圖展開它們。
任何字符
使用 . 表示?在此位置的任意一個字符,比如任何字符
執(zhí)行l(wèi)s . | grep '.bin', 篩選出當前目錄下,其文件名包含“bin”,且在“bin”之前還有一個任意字符的文件

錨點
使用?^ 和 $ 符號,只有在文本行的開頭(^)或末尾($)被找到時,才算發(fā)生一次匹配。
執(zhí)行 ls /usr/bin | grep '^zip',列出/usr/bin目錄下所有文件名開頭為zip的文件;
執(zhí)行 ls /usr/bin | grep 'zip$',列出/usr/bin目錄下所有文件名開頭為zip的文件;

待匹配字符集合
用[]從一個指定的字符集合中匹配單個字符
執(zhí)行?ls . | grep 'pl[oa]', 列出當前目錄下文件名中包含"pl",且“pl”后面的字母為o或a的文件

否定
用^表示否定
執(zhí)行l(wèi)s /usr/bin | grep '[^p]ta.',列出/usr/bin目錄下所有文件名包含“ta”,且“ta”不在文件名最后,另外“ta”之前的字母不為“p”的文件;

正則表達式直接用在路徑上

交替
用?|?表示否定

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

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

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

使用{}匹配特定個數(shù)的元素

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