西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程Linux → LINUX系統(tǒng)學習正則表達式詳解

LINUX系統(tǒng)學習正則表達式詳解

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2013/11/10 10:04:47字體大小:A-A+

作者:西西點擊:27次評論:1次標簽: 正則表達式

糗事百科Android10.8.1 官方最新版
  • 類型:新聞資訊大。23.6M語言:中文 評分:10.0
  • 標簽:
立即下載

一.linux文本查找命令

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

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

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

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

如下簡單的介紹grep命令:

語法格式:

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

用途:

匹配一個或多個模式的文本行。

options:

-E : 使用擴展正則表達式進行匹配, grep -E 或取代 egrep 命令。

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

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

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

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

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

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

-q : 靜默的,如果匹配成功,不將匹配的行輸出到標準輸出;否則即是不成功。

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

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

說明:可以同時查找多個文件中的內(nèi)容,當指定多個文件時,每個顯示出的文件行前會有文件名加一個冒號標識其來自哪個文件。

可以使用多個-e 或 -f 選項,建立要查找的模式列表。

二.正則表達式簡要介紹

1.正則表達式的組成

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

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

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

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

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

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

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

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

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

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

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

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

\( \) : 保留空間,可以將最多9個獨立的子模式存儲在單個模式中。如\(ab\).*\1 : 指匹配ab組合的兩次重現(xiàn),中間可存在任意數(shù)目的字符。

\n : 重復在\(與\)方括號內(nèi)第n個子模式至此點的模式。

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

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

+ : 匹配前面正則表達式的一個或多個擴展

? : 匹配前面正則表達式的零個或一個擴展

| : 匹配|符號前或后的正則表達式

( ) : 匹配方括號括起來的正則表達式群

(4). 方括號([])表達式

4.1.字符集  [:  :]

標識字符集,有如下幾種:

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

 4.2.排序符號

指將多個字符視為一個符號,如[.ch.]即將ch視為一個符號

4.3.等價字符

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

說明:這三種構造除其自身的方括號之外,還必須使用額外的方括號括起來。

例 : [[:alpha:]!] : 匹配任一英文字母或感嘆號。

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

 3.簡單正規(guī)表達式匹配案例

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

^china : 匹配此以china開關的行

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

^china$ : 匹配僅有china五個字符的行

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

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

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

二.實例

如下通過常用實例來學習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或者https開頭,并且其后為:并且含有.的串

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ù)字或者下劃線開頭的多個字符,其后有一個@之后有多個字母數(shù)字或者下劃線,其中有一個.號

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

 匹配結(jié)果:

hfutwyy@qq.com
aaa@.com
aaa@gmail.com

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

    手機笑話
    (176)手機笑話
    笑話是人們?nèi)粘I钪薪?jīng)常會出現(xiàn)的一個有趣對話,在人與人之間的溝通中,笑話無疑是很好的催化劑,熟練的掌握一定的笑話有益于社交,西西本頁為大家提供手機笑話軟件下載大全手機笑話簡介手機笑話大全,這里有最冷最全最新潮的笑話讓你從此告別講笑話而冷場的尷尬,成為活躍氣氛的笑話高手,還有更多爆笑圖片雷人事惡搞網(wǎng)文奇聞趣事,放松心情,輕松解壓,居家旅行開心必備,絕對是你等公交等地鐵打發(fā)無聊時光不二之選...更多>>
    • 糗事百科Android10.8.1 官方最新版

      01-21 / 23.6M

      推薦理由:糗了那么久沒有一款真正意義上的糗事百科客戶端,倒是蠻糗的,資深糗友強烈推薦,真正好用的客戶端。馬上體
    • 百思不得姐手機版6.6.5 安卓版

      02-14 / 31.4M

      推薦理由:百思不得姐是互聯(lián)網(wǎng)上最權威的創(chuàng)意YY段子發(fā)布平臺,每天超過數(shù)萬人的瀏覽量,收錄了各種創(chuàng)意成人段子,搞怪
    • 美麗說安卓版9.0.3.1709 官方版

      01-11 / 25.5M

      推薦理由:美麗說android手機版客戶端美麗說官方發(fā)布的安卓手機應用,讓愛美的女士們在手機上也能獲得電腦版美麗說的精
    • 內(nèi)涵段子V6.0.1 安卓版

      01-21 / 19.7M

      推薦理由:內(nèi)涵段子app是一款android手機上的笑話集錦應用。內(nèi)涵段子安卓版是一款集笑話、惡搞文章的手機應用,人氣爆
    • 十萬個冷笑話手游自動副本輔助

      04-03 / 1.3M

      推薦理由:十萬個冷笑話自動副本輔助是手游十萬個冷笑話的腳本輔助器工具,它可以幫助十萬個冷笑話手游玩家自動普通副
    • 十萬個冷笑話燒餅刷金幣修改器3.1

      02-16 / 970KB

      推薦理由:《十萬個冷笑話》對于喜歡動漫的玩家肯定不會陌生,現(xiàn)在由官方正版授權的手游《十萬個冷笑話》已經(jīng)正式發(fā)布
    知乎日報
    (61)知乎日報
    知乎日報是知乎推出的一款客戶端軟件,知乎作為一款高質(zhì)量問答社區(qū),每日為用戶提供數(shù)十條有價值的問題解答,而用戶也可以根據(jù)自己的興趣愛好預訂解答類型,內(nèi)容涉及生活的方方面面。產(chǎn)品特性由親歷者內(nèi)行專家直接發(fā)聲,一直追求為你呈現(xiàn)最有價值的分享滿足最奇妙的好奇心,搜羅全球值得討論的話題,由扎根世界各地的朋友們帶給你最真實的當?shù)厍闆r每天固定精品板塊,獨家供應神級吐槽及深夜食堂,各種一針見血幫你臨睡充電支持夜間...更多>>
    笑話軟件
    (20)笑話軟件
    西西軟件園笑話軟件專區(qū)為您提供各種笑話軟件下載,包含笑話大全爆笑笑話幽默笑話笑破你的肚子的笑話笑話故事長短短笑話等等,只要你想得到的都有哦笑話有哪些分類笑話按照類別可以分為古代笑話,軍旅笑話,兒童笑話,動物笑話,愚人笑話,夫妻笑話,成人笑話,幽默笑話,冷笑話,網(wǎng)絡笑話,恐怖笑話,民間笑話,醫(yī)療笑話,體育笑話,交往笑話,交通笑話,名人笑話,家庭笑話,惡心笑話,愛情笑話,各地方言笑話等等。雖然其他各個...更多>>
    • 糗事百科Android10.8.1 官方最新版

      01-21 / 23.6M

      推薦理由:糗了那么久沒有一款真正意義上的糗事百科客戶端,倒是蠻糗的,資深糗友強烈推薦,真正好用的客戶端。馬上體
    • 內(nèi)涵段子V6.0.1 安卓版

      01-21 / 19.7M

      推薦理由:內(nèi)涵段子app是一款android手機上的笑話集錦應用。內(nèi)涵段子安卓版是一款集笑話、惡搞文章的手機應用,人氣爆
    • 百思不得姐手機版6.6.5 安卓版

      02-14 / 31.4M

      推薦理由:百思不得姐是互聯(lián)網(wǎng)上最權威的創(chuàng)意YY段子發(fā)布平臺,每天超過數(shù)萬人的瀏覽量,收錄了各種創(chuàng)意成人段子,搞怪
    • 捧腹笑話 安卓版V1.14

      06-09 / 1.5M

      推薦理由:捧腹網(wǎng)是中國領先的幽默笑話分享網(wǎng)站,致力于提供分享各類幽默笑話、搞笑圖片、動態(tài)圖、搞笑視頻、經(jīng)典段子
    • 笑話萬篇安卓版v4.83

      05-25 / 7.3M

      推薦理由:笑話萬篇,一款笑話閱讀應用,該應用包含了大量的笑話段子,每天看一會,放松心情,保持良好的心態(tài)
    • 冷笑話精選v4.2 安卓版

      03-02 / 34.6M

      推薦理由:冷笑話精選是一個很熱門的公眾微博賬號,專門收集何種經(jīng)典的冷笑話,相信有不少朋友關注過這個微博,這是他
    百閱手機閱讀器
    (42)百閱手機閱讀器
    百閱手機閱讀器功能全面,支持格式多,百閱是一款閱讀和社區(qū)一體化的手機閱讀互動社區(qū)軟件,支持在手機上離線或在線閱讀和格式的手機電子書雜志漫畫,即時寫作書評發(fā)布書摘同步微博,帶來以閱讀為核心的社交互動新體驗。...更多>>

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)