亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

linux基礎(chǔ)教程之正則表達(dá)式小白讀本

概念

正則表達(dá)式是對(duì)字符串操作的一種邏輯表達(dá)方式,很多情況下我們需要在茫眾多的文件中找到我們需要的文件時(shí),就需要用到正則表達(dá)式了

正則表達(dá)式就如同一個(gè)過(guò)濾器,能夠篩選出希望得到的字符串。它可以檢索、替換符合我們自己規(guī)定格式的所有文本。

  • 正則表達(dá)式分兩類(lèi)
    • 基本正則表達(dá)式
    • 擴(kuò)展正則表達(dá)式

正則表達(dá)式的用法和選項(xiàng)

在Linux中,正則表達(dá)式通常會(huì)配合文本過(guò)濾工具grep使用。

  • grep的功能強(qiáng)大,且簡(jiǎn)單粗暴。

以/etc目錄為例

我們用grep來(lái)篩選一下其中含有”li”的文件

 

這是利用grep在/etc中對(duì)字母”li”進(jìn)行篩選

如果我們只想要以”li”為首字母的文件要怎么做呢?
這就需要用到正則表達(dá)式了

可以看到依靠正則表達(dá)式能很輕松的達(dá)到我們想要的結(jié)果。

正則表達(dá)式還有更多更強(qiáng)大的功能,讓我們來(lái)了解一下吧。

  • 正則表達(dá)式
    正則表達(dá)式的元字符分類(lèi):匹配字符、匹配字?jǐn)?shù)、位置錨定、分組
      • 字符匹配:
        匹配任意單個(gè)字符
        []              匹配指定范圍內(nèi)的任意單個(gè)字符
        [^]             匹配指定范圍外的任意單個(gè)字符
        [[:alnum:]]     字母和數(shù)字
        [[:alpha:]]     代表任何英文大小寫(xiě)字符,亦即 A-Z, a-z
        [[:lower:]]     小寫(xiě)字母 
        [[:upper:]]     大寫(xiě)字母
        [[:blank:]]     空白字符(空格和制表符) 
        [[:digit:]]     十進(jìn)制數(shù)字
        [[:xdigit:]]    十六進(jìn)制數(shù)字
        [[:graph:]]     可打印的非空白字符
        [[:print:]]     可打印字符
        [[:punct:]]     標(biāo)點(diǎn)符號(hào)

     

      • 匹配字?jǐn)?shù)(””為轉(zhuǎn)譯符,防止系統(tǒng)將某些字符當(dāng)命令處理)
        *      匹配前面的字符任意次,包括0次
        
        +      匹配前面的字符1次以上,不包括0次
        
        *?      匹配前面任意次,但盡可能少重復(fù)
        
        .*      任意長(zhǎng)度的任意字符
        
        ?      匹配其前面的字符0或1次
        
        +      匹配其前面的字符至少1次
        
        {n}   匹配前面的字符n次
        
        {m,n} 匹配前面的字符至少m次,至多n次
        
        {,n}  匹配前面的字符至多n次
        
        {n,}  匹配前面的字符至少n次

      • 位置錨定 :
        ^   行首錨定,用于模式的最左側(cè)
        
        $   行尾錨定,用于模式的最右側(cè)
        
        < 或 b     詞首錨定,用于單詞模式的左側(cè)
        
        > 或 b     詞尾錨定;用于單詞模式的右側(cè)
        
        <PATTERN> 匹配整個(gè)單詞
      • 分組

        分組 : () 將一個(gè)或多個(gè)字符捆綁在一起,當(dāng)作一個(gè)整體進(jìn)行處理,如 : (root)+

        后向引用 : 引用前面的分組括號(hào)中的模式所匹配字符,而非模式本身

        或者 : |

  • 擴(kuò)展正則表達(dá)式
    擴(kuò)展正則表達(dá)式是正則表達(dá)式的優(yōu)化版,元字符的表達(dá)更簡(jiǎn)潔,更方便。
    在grep中需要加選項(xiàng) “-e” 來(lái)啟用擴(kuò)展正則表達(dá)式或egrep(=grep -e)
    • 在字符匹配中的雙中括號(hào)在擴(kuò)展正則表達(dá)式中可以簡(jiǎn)寫(xiě)為一個(gè)
      [ : alnum : ]   字母和數(shù)字
      [ : alpha : ]   代表任何英文大小寫(xiě)字符,亦即 A-Z, a-z
      [ : lower : ]   小寫(xiě)字母 
      [ : upper : ]   大寫(xiě)字母
      [ : blank : ]   空白字符(空格和制表符) 
      [ : digit : ]   十進(jìn)制數(shù)字
      [ : xdigit : ]  十六進(jìn)制數(shù)字
      [ : graph : ]   可打印的非空白字符
      [ : print : ]   可打印字符
      [ : punct : ]   標(biāo)點(diǎn)符號(hào)
    • 大部分轉(zhuǎn)譯符()可以省略?:
      *: 匹配前面字符任意次
      
      ? : 0或1次
      
      +: 1次或多次
      
      {m} : 匹配m次
      
      {m,n} : 至少m,至多n次
      
      a|b : a或b
      
      C|cat : C或cat
      
      (C|c)at : Cat或cat

總結(jié)

正則表達(dá)式的功能很強(qiáng)大且很好用,理解上也可能對(duì)于字符表達(dá)的含義會(huì)有些混亂需要多用多記才能熟練掌握。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!