glob,正規表示式元字元,擴充套件正規表示式總結

2021-09-20 16:03:15 字數 1423 閱讀 6610

globbing: 檔名通配

查詢詳細資訊: man glob

元字元:

*: 匹配任意長度的任意字元

?: 匹配任意單個字元

: 匹配指定範圍內的任意單個字元

[^]: 匹配指定範圍外的任意單個字元

有幾種特殊格式:

[a-z],[0-9],[a-za-z],[a-z0-9]

[[:upper:]]: 所有大寫字母

[[:lower:]]: 所有小寫字母

[[:alpha:]]: 所有字母

[[:digit:]]: 所有數字

[[:alnum:]]: 所有的字母和數字

[[:blank:]]: 包含空格和tab

[[:space:]]: 所有空白字元(blank+換行符)

[[:punct:]]: 所有標點符號

基本正規表示式的元字元:

字元匹配:

.   : 匹配任意單個字元

: 匹配指定範圍內的任意單個字元

[^] : 匹配指定範圍外的任意單個字元

如:[:upper:]、[:lower:]、[:alpha:]、[:digit:]、[:alnum:]、[:punct:]、[:space:]...

次數匹配:

*  : 匹配其前面的字元任意次;可為0次;

\? : 匹配其前面的字元1次或0次;

\+ : 匹配其前面的字元至少1次;

\: 匹配其前面的字元n次;

\: 匹配其前面的字元至少m次;

\: 匹配其前面的字元至少m次,至多n次;

\: 匹配前面的字元至少0次,至多n次;

位置錨定:

^ : 行首錨定; 用於模式的最左側;

$ : 行尾錨定; 用於模式的最右側;

\< 或 \b : 詞首錨定; 用於單詞模式的左側;

\> 或 \b : 詞尾錨定; 用於單詞模式的右側;

^pattern$: 用於pattern來匹配整行;

^$: 空白行;

^[[:space:]]*$: 空白行或包含空白字元的行;

單詞: 非特殊字元組成的連續字元(字串)都稱為單詞;

分組及引用:

\(\): 將乙個或多個字元**在一起,當作乙個整體進行處理;

分組括號中的模式匹配到的內容會被正規表示式引擎自動記錄於內部的變數中,這些變數為:

\1: 模式從左側起,第乙個左括號以及與之匹配的右括號之間的模式所匹配到的字元;

\2: 模式從左側起,第二個左括號以及與之匹配的右括號之間的模式所匹配到的字元;

以此類推

...後向引用: 引用前面的分組括號中的模式所匹配到的字元;使用以上變數進行呼叫;

或:\| : pattern1或者pattern2;

擴充套件正規表示式的元字元:  (擴充套件基於標準正則,符號簡化)

|

正規表示式 元字元

現在你已經知道幾個很有用的元字元了,如 b 還有 d 當然還有更多的元字元可用,比如 s 匹配任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w匹配字母或數字或下劃線或漢字等。ba w b 匹配以字母a 開頭的單詞 先是某個單詞開始處 b 然後是字母a 然後是任意數量的字母或數字 w...

正規表示式 元字元

元字元 描述.點 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾 但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如...

正規表示式元字元

l 基本元字元 元字元說明 匹配任意單個字元 邏輯或操作符 定義乙個字元集合,匹配該集合中的乙個字元 對字元集合求非 是對整個集合求非,而不是緊挨著 符號的字元 在字元集合中定義乙個區間。如 a za z 對下乙個字元轉義。比如 n表示換行。數量元字元 元字元說明 匹配前乙個字元 子表示式 零次或多...