正則表達(dá)式學(xué)習(xí)(一)

Mastering Regular Expressions



正則表達(dá)式,是用來進(jìn)行文件檢索的有效工具
最常用的文件檢索指令為: grepegrep

正則表達(dá)式由兩種字符構(gòu)成

  • 元字符 metacharacters ---- 特殊字符
  • 文字 literal ---- 除元字符外的普通字符
元字符:  ^  $
元字符:  [  -

符號 ^ 象征行開始
符號 $ 象征行結(jié)束
這兩個元字符,匹配的不是具體的字符,而是文本位置
這兩個字符, 可以視為Anchor 真如船鉤一樣, 掛到文本相應(yīng)的位置

[例]  串:  ^bit  表示檢索所有以bit為開頭的文本行

[例] 串:  ^cat$  表示匹配檢索一行, 該行內(nèi)容為字符串cat
因為 ^ 和 $ 分別指定了要匹配串的前后位置, 中間內(nèi)容就固定了

十分實用的集合

集合, 使用方括號符號 [] 表示
正則里,可以選擇匹配指定范圍內(nèi)(集合內(nèi))的字符

比如, 有時無法分清gray還是grey
這是, 可以實用正則串: gr[ae]y 來進(jìn)行查找

### 
終端:  egrep 'sep[ae]r[ae]te' somewhere

則, 正則串匹配范圍有四, 分別是
separate,  seperate, seperate, seperete

一種很常見的應(yīng)用是, 無視大小寫
比如要檢索smith 這個name 正則串可以寫成
[Ss]mith

  • 連字符 - (配合集合使用)
    如果要檢索匹配一個數(shù)字,那么寫集合就太麻煩了
bad case: [0123456789]
crt case: [0-9]

Another case:  [A-Fa-z0-9]
則上面這一個字符 
匹配范圍為: 0~9的整數(shù) + a-z的小寫字母 + A-F大寫字母 

[注]: 連字符 - 僅在集合內(nèi)使用,才是具有特殊功能的元字符.
????????連字符位于集合外部,就是一個普通的字符.


  • 集合內(nèi)的元字符 ^ : 排除功能(配合集合使用)
    ? ? 集合內(nèi)的符號 ^ means negate
[1-6] 表示匹配字符, 范圍從1~6均可
在 集合內(nèi)使用 元字符 ^ 意為取反
[^1-6]  表示匹配一個字符, 范圍除1~6外均可

[注]: 字符 ^ 在正常情況下是一個anchor, 掛住文本行的開頭; 而在集合內(nèi)的 ^ 符, 是一個代表反義排除功能的特殊符號

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容