寫這個的目的是想說明一下,元字元與萬用字元,雖然都是使用特定的字元進行匹配。但是這是兩個東西。原字元與萬用字元之間沒有任何聯絡。不要在使用時元字元與萬用字元產生混淆。
元字元是正規表示式使用的特定匹配字元 。萬用字元是系統在匹配檔案時使用的字元 。
元字元的作用是進行文字檔案內容匹配的。而萬用字元是進行檔名稱匹配的。
可以使用 man7 glob 來查詢萬用字元 關鍵字 。
*:匹配多個字元 可以是0個即0到無限大(當然這是不可能的,linux 對檔名有長度要求)
?:匹配單個字元
[4-790]:4-7 90 中的某乙個數字,該表示法只能匹配乙個字元,匹配的字元必須是中括號中給出的字元,可以使用- 表示範圍,如4-7表示的就是 4 5 6 7 這幾個字元
[^]排除 :排除括號中的字元,也就是說,該表示方法也只能匹配乙個字元,匹配的字元必須不是括號中的內容,例:[^hello] ,非hello的任意字元。
注:下面代表的是乙個集合須使用中括號,例:[[:digit:]]
[:digit:] 任意的數字,相當於0-9
[:lower:] 任意的小寫字母
[:upper:] 任意的大寫字母
[:alpha:] 任意的大小寫字母
[:alnum:] 任意的大小寫字母及數字
[:blank:]任意水平的空白字元
[:space:] 任意的水平的或垂直的空白字元
[:punct:] 任意的標點符號
[:print:] 任意的可列印字元
[:cntrl:] 任意的控制字元
[:graph:] 任意的圖形字元
[:xdigit:] 任意的十六進製制字元
萬用字元到此結束
正規表示式的匹配物件是檔案內容。即文字 。正規表示式的使用還需要支援正規表示式的工具,如grep,sed等。
匹配時會首先匹配整個字串,當整個字串不匹配時,整個字串去掉乙個字元,然後再次進行匹配。所以貪婪模式會匹配到最大的匹配數量
匹配時,首先從目標的起始位置開始匹配,每次檢查乙個字元。
正規表示式又分為兩類 :基本的正規表示式,與擴充套件的正規表示式。
. 匹配單一的任意字元,換行符除外。
匹配中括號中的字元的任意字元一次
[helo]即匹配 h,e,l,o中的其中乙個
[^helo]取反,即取helo的補集.即不是h,e,l,o中的任意的乙個字元一次
[:digit:] 任意數字
[:lower:] 任意的小寫字母
[:upper:] 任意的大寫字母
[:alpha:] 任意的大小寫字母
[:alnum:] 任意的字母及數字
[:blank:] 任意的水平空白字元
[:space:] 任意的水平空白字元或任意的垂直空白字元
[:punct:] 任意的標點符號
[:print:] 任意的可列印字元
[:cntrl:] 任意的控制字元
[:graph:] 任意的圖形字元
[:xdigit:] 任意的十六進製制字元
* 匹配前面出現的字元任意次,包括0次
\? 匹配前面出現的字元0次或1次
\+ 匹配前面出現的字元1次以上,包括1次
\ 匹配前面出現的字元n次,且只能為n次.
\ 匹配前面出現的字元n次以上, 包括n次
\ 匹配前面出現的字元 2 - 5 次,閉區間.
\ 匹配前面出現的字元n次以上.
^ 行首錨定
$ 行尾錨定
^$空行 ^[[:space:]]*$ 顯示非空的空白行
\《或 \b 詞首錨定
\>或 \b 詞尾錨定
分組\(\) 將括號中的字元當成乙個整體
\(ro\)\
匹配ro出現最少2次
後向引用,與分組配合使用使用\1;\2表示之前括號中匹配到的內容.即字串而非模式.\1,\2表示的順序是(出現的順序,\1\,2表示的內容是(與之對應的)中匹配的內容.
匹配|左邊的模式或匹配右邊的模式
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...