grep及正則表達式


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:] 任何空白字符,包括空格([\f\n\r\t\v ])

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM