2021-05-12 14:32:11
關於 grep及正規表示式
2020-06-16 16:49:59
grep及正規表示式
正規表示式(REGular EXPression,REGEXP)是對字串和特殊字元(元字元)操作的一種邏輯公式,使用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。通常被用來檢索、替換那些符合某個模式的文字。
正規表示式又分為基本正規表示式(Basic REGEXP)和擴充套件正規表示式(Extended REGEXP)。
常見的用途就是用來比對垃圾郵件。
萬用字元
列舉一些萬用字元,跟正規表示式不通。
- *:任意長度的任意字元
- ?:任意單個字元
-
[]:括號內的單個字元
- [abcd]:可以是a,b,c,d中任何一個,但必須有
- [0-9]:可以是0到9的任何一個數位,但必須有
-
[^]:非括號內字元的單個字元
正規表示式POSIX字元類
特殊符號 | 代表意義 |
---|---|
[:alnum:] | 0-9,a-z,A-Z |
[:alpha:] | a-z,A-Z |
[:digit:] | 0-9 |
[:xdigit:] | 任何十六進位制數位 |
[:lower:] | a-z |
[:upper:] | A-Z |
[:cntrl:] | ASCII控制字元(ASCII 0~31 和 ASCII 127) |
[:print:] | 任何可列印字元 |
[:punct:] | 標點符號 |
[:blank:] | 空格或製表符([t ]) |
[:graph:] | 除空白字元外的其他字元 |
[:space:] | 任何空白字元,包括空格([fnrtv ]) |
grep
grep [OPTIONS] PATTERN [FILE...]
- -i 忽略字元大小寫的差別
- -v:顯示沒有被模式匹配到的行
- -o:只顯示被模式匹配到的字串
- -E:使用擴充套件正規表示式 egrep
- -A<顯示行數> 或 --after-context=<顯示行數> : 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。
- -B<顯示行數> 或 --before-context=<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前的內容。
- -C<顯示行數> 或 --context=<顯示行數>或-<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。
正則
元字元
貪婪模式
.:匹配任意單個字元
*:匹配其前面的字元任意次
.*:匹配任意長度的任意字元
?:匹配其前面的字元1次或0次
{m,n}:匹配其前面的字元至少m次
位置錨定
^:錨定行首,此字元後面的任意內容必須出現在行首
$:錨定行尾,此字元前面的任意內容必須出現在行尾
^$:空白行
<或b:錨定詞首,其後面的任意字元必須作為單詞首部出現
>或b:錨定詞尾,其前面的任意字元必須作為單詞尾部出現
分組:()
後向參照
1:參照第一個左括號以及與之對應的右括號所包括的所有內容
或者
|:or
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-07/153192.htm
相關文章