亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

Linux 正則表達式詳解

2020-03-16 21:07:32
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了linux 正則表達式的一些使用方法,需要的朋友可以參考下
 
 

一.linux文本查找命令

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

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

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

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

如下簡單的介紹grep命令:

語法格式:

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

用途:

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

options:

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

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

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

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

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

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

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

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

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

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

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

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

二.正則表達式簡要介紹

1.正則表達式的組成

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

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

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

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

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

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

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

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

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

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

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

/{n,m/} : 區間表達式,匹配在它前面的單個字符重現的次數區別。/{n/}指重現n次;/{n,m/}指重現n至m次;

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

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

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

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

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

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

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

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

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

4.1.字符集  [:  :]

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

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

 4.2.排序符號

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

4.3.等價字符

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

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

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

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

 3.簡單正規表達式匹配案例

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

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

china$ : 匹配以china結尾的行

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

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

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

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

二.實例

如下通過常用實例來學習BRE和ERE匹配,源文件url.txt內容如下:

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

匹配結果如下:

http://www.baidu.com
https://www.baidu.com

2.Email匹配

示例文件內容為:

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

@@baidu.com

匹配以字母數字或者下劃線開頭的多個字符,其后有一個@之后有多個字母數字或者下劃線,其中有一個.號

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

 匹配結果:

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

先到這里,后續再接著寫。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女免费看| 欧美在线一区二区三区四| 国产精品18久久久久久首页狼| 国产婷婷97碰碰久久人人蜜臀| 国产一区二区三区免费视频| www.xxxx欧美| 国产成人精品久久二区二区| 日韩久久免费视频| 久久久天堂国产精品女人| 免费97视频在线精品国自产拍| 91免费精品国偷自产在线| 国产精品video| 欧美国产极速在线| 茄子视频成人在线| 亚洲丁香婷深爱综合| 日韩精品电影网| 夜夜嗨av一区二区三区四区| 国产欧美一区二区三区在线| 一区二区亚洲欧洲国产日韩| 奇米四色中文综合久久| 色黄久久久久久| 国产91久久婷婷一区二区| 欧美大片在线影院| 欧美在线视频a| 日韩一区二区欧美| 日韩欧美亚洲一二三区| 热久久视久久精品18亚洲精品| 在线观看视频亚洲| 日韩欧美在线视频| 亚洲精品久久久久久久久久久久| 亚洲精品自产拍| 亚洲国产欧美一区二区三区同亚洲| 欧美视频免费在线| 91精品国产自产在线观看永久| 国产欧美在线视频| 久久精品国产2020观看福利| 久久国产精品亚洲| 不卡av在线播放| 欧美孕妇性xx| 日韩欧美亚洲国产一区| 97超碰国产精品女人人人爽| 中文字幕精品网| 久久人人爽国产| 日韩性xxxx爱| 欧美日韩一区二区免费在线观看| 亚洲图片制服诱惑| 久久国产精品免费视频| 国产伊人精品在线| 一区二区三区在线播放欧美| 色综合天天狠天天透天天伊人| 91欧美激情另类亚洲| 视频在线一区二区| 亚洲一区国产精品| 欧美日韩一区二区三区在线免费观看| 一本色道久久88亚洲综合88| 久久91精品国产| 日本不卡视频在线播放| 日韩高清电影好看的电视剧电影| 欧美性xxxx| 国产成人激情小视频| 日韩视频―中文字幕| 欧美午夜www高清视频| 精品国产电影一区| 97av在线视频免费播放| 久久久av一区| 久久成人国产精品| 欧美一级大胆视频| 日韩美女毛茸茸| 国产日韩欧美中文| 精品国偷自产在线视频| 亚洲人成网7777777国产| 国产精品永久免费视频| 国产精品香蕉国产| 黄色成人在线播放| 亚洲欧美中文日韩v在线观看| 一区二区欧美日韩视频| 亚洲www在线观看| 97精品免费视频| 国产精品久久久久久久天堂| 2019av中文字幕| 深夜福利亚洲导航| 亚洲日本成人女熟在线观看| 欧美日韩在线视频一区二区| 久久久久五月天| 成人午夜激情免费视频| 亚洲成av人片在线观看香蕉| 国模叶桐国产精品一区| 国产精品热视频| 高清在线视频日韩欧美| 九九精品视频在线观看| 国产日产欧美精品| 欧美电影免费观看高清| 欧美日韩中文字幕在线视频| 欧美激情在线有限公司| 国产a∨精品一区二区三区不卡| 亚洲一区亚洲二区亚洲三区| 久久夜色精品国产亚洲aⅴ| 69国产精品成人在线播放| 欧美精品亚州精品| 精品视频在线播放| 亚洲片国产一区一级在线观看| 91免费在线视频| 国产精品视频一区国模私拍| 亚洲桃花岛网站| 国模叶桐国产精品一区| 亚洲人成电影在线| 久久久精品免费视频| 国产精品9999| 亚洲欧美国产高清va在线播| 91在线视频一区| 国产一区二区三区在线播放免费观看| 在线色欧美三级视频| 久久国产精品久久久久| 国产欧美日韩精品丝袜高跟鞋| 日韩av综合网| 亚洲精品在线视频| 国产原创欧美精品| 亚洲一区二区免费在线| 亚洲欧美在线免费观看| 国产精品美女无圣光视频| 亚洲免费视频在线观看| 色琪琪综合男人的天堂aⅴ视频| 久久精品久久精品亚洲人| 亚洲成色777777女色窝| 九色精品美女在线| 色妞色视频一区二区三区四区| 亚洲全黄一级网站| 欧美人交a欧美精品| 亚洲国产又黄又爽女人高潮的| 91老司机在线| 日韩av电影中文字幕| 成人精品一区二区三区电影免费| 亚洲精品自产拍| 国产在线拍揄自揄视频不卡99| 久久久久久有精品国产| 欧美有码在线观看| 亚洲成人1234| 精品亚洲va在线va天堂资源站| 亚洲精品美女网站| 中文字幕少妇一区二区三区| 国产日韩换脸av一区在线观看| 亚洲深夜福利网站| 久久成人18免费网站| 中文字幕亚洲第一| 欧美在线一级va免费观看| 国产一区二区三区直播精品电影| 欧美日韩国内自拍| 欧美成人在线网站| 国产91九色视频| 亚洲国产天堂网精品网站| 蜜臀久久99精品久久久久久宅男| 国产精品99久久久久久www| 91视频九色网站| 日韩有码在线播放| 久久人人爽人人爽人人片亚洲| 97成人精品视频在线观看| 日韩在线观看视频免费| 欧美另类xxx| 91成品人片a无限观看| 国产日本欧美一区二区三区| 精品成人在线视频| 26uuu日韩精品一区二区| 国产精品成人av在线| 欧美极品少妇全裸体|