<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > Linux正則表達(dá)式詳解

        Linux正則表達(dá)式詳解

        時(shí)間: 志藝942 分享

        Linux正則表達(dá)式詳解

          你還在為不知道Linux 正則表達(dá)式詳解而煩惱么?接下來(lái)是小編為大家收集的Linux 正則表達(dá)式詳解,希望能幫到大家。

          Linux 正則表達(dá)式詳解

          一.linux文本查找命令

          在說(shuō)linux正規(guī)表達(dá)式之前,還介紹下linux中查找文本文件常用的三個(gè)命令:

          1.grep : 最早的文本匹配程序,使用POSIX定義的基本正則表達(dá)式(BRE)來(lái)匹配文本。

          2.egrep : 擴(kuò)展式grep,其使用擴(kuò)展式正規(guī)表達(dá)式(ERE)來(lái)匹配文本。

          3.fgrep : 快速grep,這個(gè)版本匹配固定字符串而非正則表達(dá)式。并且是唯一可以并行匹配多個(gè)字符串的版本。

          如下簡(jiǎn)單的介紹grep命令:

          語(yǔ)法格式:

          grep [options ...] pattern-spec [files ...]

          用途:

          匹配一個(gè)或多個(gè)模式的文本行。

          options:

          -E : 使用擴(kuò)展正則表達(dá)式進(jìn)行匹配, grep -E 或取代 egrep 命令。

          -F : 使用固定字符串進(jìn)行匹配, grep -F 或取代傳統(tǒng)的fgrep命令。

          -e : 通常第一個(gè)非選項(xiàng)的參數(shù)認(rèn)為是要匹配的模式,也可以同時(shí)提供多個(gè)模式,只要將其放入單引號(hào),并用換行字符分隔他們。

          模式以減號(hào)開頭時(shí),為防止混淆其為選項(xiàng),-e選項(xiàng)說(shuō)明其后的參數(shù)為模式,即使他以減號(hào)開頭。

          -f : 從pat-file文件讀取模式作為匹配。

          -i : 模式匹配時(shí)忽略大小寫差異。

          -l : 列出匹配模式的文件名稱,而不是打印匹配的行。

          -q : 靜默的,如果匹配成功,不將匹配的行輸出到標(biāo)準(zhǔn)輸出;否則即是不成功。

          -s : 不顯示錯(cuò)誤信息,通常與-q并用。

          -v : 顯示不匹配模式的行。

          說(shuō)明:可以同時(shí)查找多個(gè)文件中的內(nèi)容,當(dāng)指定多個(gè)文件時(shí),每個(gè)顯示出的文件行前會(huì)有文件名加一個(gè)冒號(hào)標(biāo)識(shí)其來(lái)自哪個(gè)文件。

          可以使用多個(gè)-e 或 -f 選項(xiàng),建立要查找的模式列表。

          二.正則表達(dá)式簡(jiǎn)要介紹

          1.正則表達(dá)式的組成

          (1).一般字符:沒有特殊意義的字符

          (2).特殊字符(meta字符):元字符,有在正則表達(dá)式中有特殊意義

          2.如下講下正則表達(dá)式中的常見meta字符

          (1).POSIX BRE與ERE中都有的meta字符:

          \ : 通常用于打開或關(guān)閉后續(xù)字符的特殊含義,如\(...\)與\{...\}

          . : 匹配任何單個(gè)字符(除NUL)

          * : 匹配其前的任何數(shù)目或沒有的單個(gè)字符,例: . 表示任一字符, 則 .* 匹配任一字符的任意長(zhǎng)度

          ^ : 匹配緊接著的正則表達(dá)式,BRE中僅在正則表達(dá)式的開頭有特殊的含義,ERE中在任何位置都有特殊含義

          $ : 匹配前面的正則表達(dá)式,在字符串或者行結(jié)尾處。BRE中僅在正則表達(dá)式的結(jié)尾處有特殊的含義,ERE中在任何位置都有特殊含義

          [] : 匹配方括號(hào)內(nèi)的任一字符,其中可用連字符(-)指的連續(xù)字符的范圍;^符號(hào)苦出現(xiàn)在方括號(hào)的第一個(gè)位置,則表示匹配不在列表中的任一字符,

          (2).POSIX BRE中才有的字符:

          \{n,m\} : 區(qū)間表達(dá)式,匹配在它前面的單個(gè)字符重現(xiàn)的次數(shù)區(qū)別。\{n\}指重現(xiàn)n次;\{n,m\}指重現(xiàn)n至m次;

          \( \) : 保留空間,可以將最多9個(gè)獨(dú)立的子模式存儲(chǔ)在單個(gè)模式中。如\(ab\).* class="main">

        Linux正則表達(dá)式詳解

        時(shí)間: 志藝942 分享

          \n : 重復(fù)在\(與\)方括號(hào)內(nèi)第n個(gè)子模式至此點(diǎn)的模式。

          (3).POSIX ERE中才有的字符:

          {n,m} : 與BRE的\{n,m\}功能相同

          + : 匹配前面正則表達(dá)式的一個(gè)或多個(gè)擴(kuò)展

          ? : 匹配前面正則表達(dá)式的零個(gè)或一個(gè)擴(kuò)展

          | : 匹配|符號(hào)前或后的正則表達(dá)式

          ( ) : 匹配方括號(hào)括起來(lái)的正則表達(dá)式群

          (4). 方括號(hào)([])表達(dá)式

          4.1.字符集 [: :]

          標(biāo)識(shí)字符集,有如下幾種:

        [::alnum] : 數(shù)字字符 [:digit:] : 數(shù)字字符 [:punct:] : 標(biāo)點(diǎn)符號(hào)字符
        [:alpha:] : 字母字符 [:graph:] : 非空格字符 [:space:] : 空格字符
        [:blank:] : 空格與定位字符 [:lower:] : 小寫字母字符 [:upper:] : 大寫字母字符
        [:cntrl:] : 控制字符 [:print:] : 可顯示的字符 [:xdigit:] : 16進(jìn)制數(shù)字

          4.2.排序符號(hào)

          指將多個(gè)字符視為一個(gè)符號(hào),如[.ch.]即將ch視為一個(gè)符號(hào)

          4.3.等價(jià)字符

          認(rèn)為多個(gè)字符相等,如[=e=]在法文的locale里,可匹配于多種與e相似的字符,此處不再列出。

          說(shuō)明:這三種構(gòu)造除其自身的方括號(hào)之外,還必須使用額外的方括號(hào)括起來(lái)。

          例 : [[:alpha:]!] : 匹配任一英文字母或感嘆號(hào)。

          [[.ch.] : 匹配ch排序元素,而不匹配單獨(dú)的字母c或h.

          3.簡(jiǎn)單正規(guī)表達(dá)式匹配案例

          china : 匹配此行中任意位置有china字符的行

          ^china : 匹配此以china開關(guān)的行

          china$ : 匹配以china結(jié)尾的行

          ^china$ : 匹配僅有china五個(gè)字符的行

          [Cc]hina : 匹配含有China或china的行

          Ch.na : 匹配包含Ch兩字母并且其后緊跟一個(gè)任意字符之后又有na兩個(gè)字符的行

          Ch.*na : 匹配一行中含Ch字符,并且其后跟0個(gè)或者多個(gè)字符,再繼續(xù)跟na兩字符

          二.實(shí)例

          如下通過(guò)常用實(shí)例來(lái)學(xué)習(xí)BRE和ERE匹配,源文件url.txt內(nèi)容如下:

          www.baidu.com

          http://www.baidu.com

          https://www.baidu.com

          http://wwwbaiducom

          baidu.com

          baidu

          1.url匹配

          匹配以http或者h(yuǎn)ttps開頭,并且其后為:并且含有.的串

          BRE匹配:

          grep '^https\{0,1\}.*\..*' url.txt

          ERE匹配:

          grep -E '^https?.*\..*' url.txt

          匹配結(jié)果如下:

          http://www.baidu.com

          https://www.baidu.com

          2.Email匹配

          示例文件內(nèi)容為:

          hfutwyy@qq.com

          aaaa@

          aaa@.com

          aaa@gmail.com

          @@baidu.com

          匹配以字母數(shù)字或者下劃線開頭的多個(gè)字符,其后有一個(gè)@之后有多個(gè)字母數(shù)字或者下劃線,其中有一個(gè).號(hào)

          grep '^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*\..*' email.txt

          匹配結(jié)果:

          hfutwyy@qq.com

          aaa@.com

          aaa@gmail.com

          先到這里,后續(xù)再接著寫。


        看了“Linux 正則表達(dá)式詳解”還想看:

        1.全面解析Linux的grep命令中正則表達(dá)式的用法

        2.linux grep正則表達(dá)式與grep用法詳解

        3.Linux系統(tǒng)grep正則表達(dá)式怎么用

        4.linux grep命令詳解

        2836523 主站蜘蛛池模板: 国产精品视频亚洲二区| 久久精品人妻少妇一区二| 欧美怡春院一区二区三区| 久久久久亚洲AV无码专| 亚洲伊人久久综合成人| 欧美白妞大战非洲大炮| 亚洲国产精品自在在线观看| 亚洲十八禁一区二区三区| 国产中文三级全黄| 国产精品男女爽免费视频| 无码国产欧美一区二区三区不卡| 国产精品欧美一区二区三区| 国产在线中文字幕精品| 夜夜添夜夜添夜夜摸夜夜摸| 91精品国产一二三产区| 国产精品毛片久久久久久l| 国产91麻豆精品成人区| 精品国产成人A区在线观看| 伊人色综合九久久天天蜜桃| 国产一区二区日韩经典| 免费在线成人网| 久久天天躁夜夜躁狠狠85| 欧美日韩精品一区二区三区不卡| 蜜国产精品JK白丝AV网站| av在线播放国产一区| 国产精品国产成人国产三级| 国产最大的福利精品自拍| 久久夜色撩人精品国产av| 亚洲熟妇色自偷自拍另类| 国产旡码高清一区二区三区| 2020国产欧洲精品网站| 亚洲精品国产一区二区三区在线观看| 一级毛片免费观看不卡视频| 亚洲人成电影网站 久久影视| 国内揄拍国产精品人妻门事件| 国产中文字幕在线精品| 熟女av一区二区三区| 黄又色又污又爽又高潮| chinese老太交videos| 视频一区视频二区中文字幕| 亚洲中文一区二区av|