国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

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

2020-03-22 17:01:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
一.linux文本查找命令在說(shuō)linux正規(guī)表達(dá)式之前,還介紹下linux中查找文本文件常用的三個(gè)命令:1.grep : 最早的文本匹配程序,使用POSIX定義的基本html' target='_blank'>正則表達(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).一般字符:沒(méi)有特殊意義的字符(2).特殊字符(meta字符):元字符,有在正則表達(dá)式中有特殊意義2.如下講下正則表達(dá)式中的常見meta字符(1).POSIX BRE與ERE中都有的meta字符:/ :通常用于打開或關(guān)閉后續(xù)字符的特殊含義,如/(.../)與/{.../}. : 匹配任何單個(gè)字符(除NUL)* : 匹配其前的任何數(shù)目或沒(méi)有的單個(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/).*/1 : 指匹配ab組合的兩次重現(xiàn),中間可存在任意數(shù)目的字符。/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í)字符集,有如下幾種:
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
http://www.baidu.com
http://wwwbaiducom
baidu.com
baidu1.url匹配匹配以http或者h(yuǎn)ttps開頭,并且其后為:并且含有.的串BRE匹配:grep '^https/{0,1/}.*/..*' url.txtERE匹配:grep -E'^https?.*/..*' url.txt匹配結(jié)果如下:http://www.baidu.com
http://www.baidu.com2.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ù)再接著寫。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临湘市| 鱼台县| 缙云县| 彭州市| 留坝县| 富民县| 龙岩市| 清远市| 九江市| 扶沟县| 灯塔市| 年辖:市辖区| 门源| 察哈| 德昌县| 怀仁县| 磴口县| 嘉兴市| 龙游县| 霍城县| 唐山市| 东阿县| 吉首市| 南安市| 禹城市| 永泰县| 黄梅县| 新昌县| 麻江县| 平度市| 苗栗市| 长沙市| 凤冈县| 徐汇区| 方城县| 藁城市| 神农架林区| 莒南县| 泊头市| 凉山| 迭部县|