欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

正則表達(dá)式要點(diǎn)有哪些

這篇文章主要介紹正則表達(dá)式要點(diǎn)有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括蓬安網(wǎng)站建設(shè)、蓬安網(wǎng)站制作、蓬安網(wǎng)頁(yè)制作以及蓬安網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蓬安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蓬安省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

正則表達(dá)式(Regular Expression)是強(qiáng)大、便捷、高效的文本處理工具。

正則表達(dá)式的元字符與其他字符結(jié)合起來(lái),實(shí)現(xiàn)我們期望的功能。

典型元字符:

^    脫字符,一行的起始,匹配的是行開(kāi)始的位置

$    美元符,一行的結(jié)束,匹配的是行結(jié)尾的位置

|    豎線、管道,多選結(jié)構(gòu),匹配分隔兩邊的任意子表達(dá)式

(…)   括號(hào),限制豎線(管道)的作用范圍,單用grep不支持,需用grep -E或egrep

[…]   字符組,匹配里面的若干字符之一(正則表達(dá)式結(jié)構(gòu)體Construct[],列出在某處期望匹配的字符)

[^…]  排除型字符組,匹配未列出的任意字符

-            連字符,表示一個(gè)范圍,用于字符組內(nèi)部時(shí)才是元字符

.     點(diǎn)號(hào),單個(gè)任意字符,用來(lái)匹配任意字符的字符組的簡(jiǎn)便寫(xiě)法

\<    反斜線小于,單詞分界符\<用于匹配單詞(字符組合,字母數(shù)字符號(hào))開(kāi)頭的位置

\>    反斜線大于,單詞分界符\>用于匹配單詞(字符組合,字母數(shù)字符號(hào))結(jié)束的位置

同一字符在不同位置,含義可能不一樣,需注意區(qū)分。加參數(shù)-i表示匹配時(shí)不區(qū)分大小寫(xiě)。


實(shí)例分析:

cat       尋找一行文本中任意位置的cat,如cat、catalog、scat、scatter

^cat      尋找行首的cat,如catalog

cat$      尋找行尾的cat,如scat

^cat$      只包含cat的行

^$         空行,沒(méi)有任何字符(包括空白字符)

^          單獨(dú)使用無(wú)意義

\<cat\>    匹配單詞cat

 

^(From|Subject):  表示尋找以From:或者Subject:開(kāi)頭的行

包含型字符組:

[123456]     匹配1到6中的任意一個(gè)數(shù)字

<H[123456]>  匹配<H1>~<H6>,可以寫(xiě)成<H[1-6]>,-為連字符,用于字符組內(nèi)部時(shí),表示一個(gè)范圍。

[0-9]         匹配一個(gè)數(shù)字

[a-z]         匹配一個(gè)小寫(xiě)字母

[A-Z]         匹配一個(gè)大寫(xiě)字母

[0-9A-Z_!.?]   匹配一個(gè)數(shù)字、大寫(xiě)字母、下劃線、驚嘆號(hào)、點(diǎn)或問(wèn)號(hào)

[0123456789abcdefABCDEF]  可以寫(xiě)成[0-9a-fA-F]或者[A-Fa-f0-9],順序無(wú)所謂,適合處理16進(jìn)制數(shù)字

 

[abc]、[a-c]、(a|b|c)表示同一個(gè)意思,但不是所有字符都可以這樣表示。字符組效率相對(duì)較高。

排除型字符組:

[^…]         匹配任何列出的字符,字符組內(nèi)部開(kāi)頭的^表示排除(negate),列出不希望匹配的字符

n[^d]        匹配n后面不是字符d的行

[^d]         匹配不是僅包含字母d的行,即排除僅包含字母d的行

 

排除型字符組表示“匹配未列出的字符(match a character that’s not listed)”,而不是“不要匹配列出的字符(don’t match what is listed)”。


匹配文件目錄/路徑的方法:

./([^/]+)/      匹配./后面不是只有/但可以是其他字符(出現(xiàn)次數(shù)不限)的行,最后面還有/

實(shí)測(cè)發(fā)現(xiàn)此正則表達(dá)式還不夠嚴(yán)謹(jǐn)

因?yàn)?是匹配單個(gè)任意字符(不一定是.  還可能是字母或其它字符)

若要匹配單獨(dú)的.  需要加轉(zhuǎn)義符\或者脫字符^

實(shí)例:
[root@CentOS6 shell]# grep -E '\./([^/]+)/' dir.txt        #加轉(zhuǎn)義符\

./home/

./...yes../

./new/

./100/

./中國(guó)/

./2015/

./2014-12-31/

[root@CentOS6 shell]# grep -E '^./([^/]+)/$' dir.txt      #加行首行尾錨定符^和$

./home/

./...yes../

./new/

./100/

./中國(guó)/

./2015/

./2014-12-31/

[root@CentOS6 shell]# cat dir.txt

//

.//

./home/

./...yes../

.//~/

./new/

./100/

./中國(guó)/

./2015/

./2014-12-31/

/hometown/

yesterday

@China

.///

.////

.//~/~/

abcd//~/

..//../

[root@CentOS6 shell]#

用點(diǎn)號(hào).匹配任意字符:

元字符.(也稱點(diǎn)號(hào)dot、小點(diǎn)point)是用來(lái)匹配任意字符的字符組的簡(jiǎn)便寫(xiě)法。

如果需要在表達(dá)式中使用一個(gè)“匹配任意字符”的占位符(placeholder),用點(diǎn)號(hào).就很方便。

例如:

要搜索03/19/76、03-19-76、03-19-76,表達(dá)式可以寫(xiě)成字符組形式:03[-./]19[-./]76

也可以使用點(diǎn)號(hào).替代字符組:03.19.76

相對(duì)而言,03[-./]19[-./]76更精確,03.19.76里的點(diǎn)號(hào).匹配到還可能是其他字符。具體用哪個(gè)取決于目標(biāo)文本的情況。

 

字符組內(nèi)的點(diǎn)號(hào).不是元字符,僅代表普通的點(diǎn)字符;

在字符組內(nèi)的連字符-,是否表示范圍要看其所在位置,在開(kāi)頭或結(jié)尾都不是表示范圍,在中間(且不是在[^后面)的才是。例如:[.-/]中-是表示范圍,但[^-/.]、[./-]里的-都不是表示范圍。

管道|多選結(jié)構(gòu):匹配任意子表達(dá)式

|也是一個(gè)元字符,意為或(or),通過(guò)它可以把不同的子表達(dá)式組合成一個(gè)總的表達(dá)式,在這樣的組合中,子表達(dá)式稱為“多選分支(alternative)”。

 

如:gr[ea]y    可以采用|寫(xiě)成grey|gray,或者gr(a|e)y。

注意不要寫(xiě)成gr[a|e]y,這里面的|只是普通的字符,因?yàn)樵谧址M內(nèi)部。

 

多選結(jié)構(gòu)可以包括很多字符,但不能超越括號(hào)的界限。

一個(gè)字符組只能匹配目標(biāo)文本中的單個(gè)字符,而每個(gè)多選結(jié)構(gòu)自身都可能是完整的正則表達(dá)式,都可以匹配任意長(zhǎng)度的文本。

 

(first|1st)與(fir|1)st                     同一意思

(First|1st) [Ss]treet與(Fir|1)st [Ss]treet        同一意思

在一個(gè)包含多選結(jié)構(gòu)的表達(dá)式中使用脫字符^和美元符$的時(shí)候要小心。

分析:

^From|Subject|Date:      匹配^From或Subject或Date:

^(From|Subject|Date):     匹配^From:或^Subjec:或^Date:     常用于提取E-mail文件中的信息

兩者的匹配結(jié)果是不一樣的。

如果希望在每個(gè)多選分支之前都有脫字符^,之后都有:,需要使用括號(hào)來(lái)限制(constrain)這些多選分支。

 

典型用法:

grep -E 'From:|Subject:' test.txt

grep -E '^(From|Subject|Date):' test.txt   //單引號(hào)、雙引號(hào)都可以,擴(kuò)展正則

egrep '^(From|Subject|Date):' test.txt

元字符序列\(zhòng)<和\> 單詞分界符:

使用正則表達(dá)式時(shí)經(jīng)常會(huì)遇到一個(gè)問(wèn)題,就是期望匹配的“單詞”包含在另一個(gè)單詞之中。

 

單詞分界符\<和\>用于匹配單詞開(kāi)頭和結(jié)束的位置。注意:<和>本身并不是元字符,只有當(dāng)它們與斜線\結(jié)合起來(lái)的時(shí)候,整個(gè)序列才有特殊意義(稱為元字符序列)。不是所有的egrep版本都支持單詞分界符。

 

分析:

\<cat\>意為匹配單詞的開(kāi)頭位置,然后是c a t這3個(gè)字母,之后是單詞的結(jié)束位置,簡(jiǎn)單的說(shuō)就是匹配cat這個(gè)單詞。

也可以用\<catcat\>來(lái)分別匹配以單詞(或者說(shuō)字母組合)cat開(kāi)頭和結(jié)束的單詞。

 

egrep(相當(dāng)于grep -E)認(rèn)定的單詞開(kāi)頭位置用向上的箭頭標(biāo)識(shí),單詞結(jié)束位置用向下的箭頭標(biāo)識(shí)。

“單詞的開(kāi)始和結(jié)束”準(zhǔn)確地說(shuō)是“字母數(shù)字字符號(hào)的開(kāi)始和結(jié)束”。

 

可選項(xiàng)元素、通配符Wildcards:

optional items可選項(xiàng)元素

 

問(wèn)號(hào)? 代表可選項(xiàng),表示任意單個(gè)字符,把它加在一個(gè)字符的后面,就表示此處容許出現(xiàn)這個(gè)字符,不過(guò)它的出現(xiàn)并非匹配成功的必要條件。哪個(gè)字符可選,?就放在哪個(gè)字符后面。需要使用egrep或grep -E。

 

color、colour        可以通過(guò)colou?r來(lái)匹配

July、Jul           可以通過(guò)July?或(July|Jul)來(lái)匹配

fourth|4th|4       可以通過(guò)fourth|4(th)?來(lái)匹配  嵌套了括號(hào),問(wèn)號(hào)?作用的對(duì)象是整個(gè)括號(hào)內(nèi)的內(nèi)容。

括號(hào)及反向引用

括號(hào)的用途:

1、限制多選項(xiàng)的范圍

2、將若干字符組合為一個(gè)單元,受問(wèn)號(hào)?或星號(hào)*之類量詞的作用,如four(th)?、(a)*

3、反向引用backreference   容許匹配與表達(dá)式先前部分匹配的同樣的文本

例如:\<([A-Za-z]+).+\1\>      這里的括號(hào)()和\1用于支持反向引用

 

在支持反向引用的工具軟件中,括號(hào)()能夠“記憶”其中的子表達(dá)式匹配的文本,不論這些文本是什么,元字符序列\(zhòng)1都能記住它們。而且,在一個(gè)表達(dá)式中可以使用多個(gè)括號(hào),在用\1、\2、\3等來(lái)表示第一、第二、第三組括號(hào)匹配的文本。括號(hào)是按照開(kāi)括號(hào)“(”從左至右的出現(xiàn)順序進(jìn)行的。

例如:([a-z])([0-9])\1\2中的\1代表[a-z]匹配的內(nèi)容,\2代表[0-9]匹配的內(nèi)容。

 

轉(zhuǎn)義

.本身是元字符,它可以匹配任何字符,包括空格。

真正匹配文本中點(diǎn)號(hào).的元序列應(yīng)該是反斜線(backslash)加上點(diǎn)號(hào)的組合

aga\.att\.com

\.稱為“轉(zhuǎn)義的點(diǎn)號(hào)”或“轉(zhuǎn)義的句號(hào)”,這種方法適用于所有的元字符,但在字符組內(nèi)部無(wú)效。

這樣使用的反斜線成為“轉(zhuǎn)義符(escape)”——它作用的元字符會(huì)失去特殊含義,成為普通字符。

還可以用\([a-zA-Z]+\)來(lái)匹配一個(gè)括號(hào)內(nèi)的單詞,例如(very),在開(kāi)閉括號(hào)之前的反斜線消除了開(kāi)閉括號(hào)的特殊意義,于是能夠匹配文本中的開(kāi)閉括號(hào)。

變量名:

許多程序設(shè)計(jì)語(yǔ)言都有標(biāo)識(shí)符(identifier,例如變量名)的概念。

標(biāo)識(shí)符只包含字母、數(shù)字以及下劃線,但不能以數(shù)字開(kāi)頭。

可以用[a-zA-Z_][a-zA-Z_0-9]*來(lái)匹配標(biāo)識(shí)符:

第一個(gè)字符組匹配可能出現(xiàn)的第一個(gè)字符;

第二個(gè)(包括對(duì)應(yīng)的*)匹配余下的字符。


引號(hào)內(nèi)的字符串:

匹配引號(hào)內(nèi)的字符串,最簡(jiǎn)單的方法是使用表達(dá)式:”[^”]*”

 

兩端的引號(hào)用來(lái)匹配字符串開(kāi)頭和結(jié)尾的引號(hào)。

在這兩個(gè)引號(hào)之間的文本可以包括雙引號(hào)之外的任何字符。

這里用[^”]來(lái)匹配除雙引號(hào)”之外的任何字符,用*來(lái)表示兩個(gè)引號(hào)之間可以存在任意數(shù)目的非雙引號(hào)字符。


美元金額(可能包含小數(shù)):

\$[0-9]+(\.[0-9][0-9])?是一種匹配美元金額的辦法。

 

三個(gè)部分:\$、…+、(…)?

分別匹配一個(gè)美元符號(hào)、小數(shù)點(diǎn)前的數(shù)字(一個(gè)或一組數(shù)字)、小數(shù)點(diǎn)及其之后的數(shù)字(一個(gè)小數(shù)點(diǎn)和兩位數(shù)字),可以匹配$100.1之類的美元金額,但不能匹配$1,100這樣的金額,小數(shù)部分是可選的。

 

如果要匹配的是只包含價(jià)格而不含其他字符的行,可以在此表達(dá)式兩端加上^…$,即:

^\$[0-9]+(\.[0-9][0-9])?$      開(kāi)頭為美元符$,結(jié)尾為數(shù)字,且必須包含小數(shù)點(diǎn),匹配結(jié)果與前者不同

這個(gè)表達(dá)式不能匹配$.49。

 

因?yàn)椋?/p>

^    脫字符,一行的起始,匹配的是行開(kāi)始的位置

$    美元符,一行的結(jié)束,匹配的是行結(jié)尾的位置


網(wǎng)址HTTP/HTML URL:

網(wǎng)址(Web URL)的形式可能有很多種,所以構(gòu)造一個(gè)能夠匹配所以形式的URL的正則表達(dá)式很有難度。

但如果只要求匹配大多數(shù)常見(jiàn)的URL,則相對(duì)比較簡(jiǎn)單。

 

常見(jiàn)的HTTP/HTML URL樣式如下:

http://hostname/path.html(或htm)

 

主機(jī)名(hostname)(如www.yahoo.com)的規(guī)則比較復(fù)雜,但因?yàn)橹鳈C(jī)名一般跟在http://之后,可以寫(xiě)成:

[-a-z0-9_.]+  (可能應(yīng)該是[-a-z0-9_.:]+)

path部分的變換更多,需要寫(xiě)成:

[-a-z0-9_:@&?=+,.!/~*%$]*

注意:用作普通字符的連字符-必須放在字符組的開(kāi)頭,用在字符組中間的是表示范圍的元字符。

 

綜合起來(lái)就是:

egrep -i ‘\<http://[-a-z0-9_.:]+/[-a-z0-9_:@&?=+,.!/~*%$]*\.html?\>' files

 

更簡(jiǎn)化的版本:

egrep -i ‘\<http://[^ ]*\.html?\>' files

可能匹配出一些錯(cuò)誤結(jié)果,根據(jù)具體需求調(diào)整表達(dá)式即可。

 

以上是“正則表達(dá)式要點(diǎn)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁(yè)標(biāo)題:正則表達(dá)式要點(diǎn)有哪些
分享網(wǎng)址:http://aaarwkj.com/article24/giphje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、外貿(mào)網(wǎng)站建設(shè)商城網(wǎng)站、外貿(mào)建站、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
国产中文字幕一区二区在线观看| 青青久久精品国产亚洲av| 一区二区三区欧美小黄片| 日韩人妻中文字幕在线视频| 国产免费不卡午夜福利在线| 国产精品自在线拍亚洲另类| 国产午夜在线影院一区二区| 国产精品亚洲二区三区三州| 国产有码日产一区在线观看| 小明久久国内精品自线| 久久国产综合精品电影| 青青草原高清在线观看| 丰满少妇一区二区三区在线观看| 国产精品国产三级区别| 怡红院怡春院视频免费看| 欧美精品在线高清观看| 一区二区三区日韩国产电影| 999久久久久亚洲精品| 色婷婷狠狠久久综合中文一本 | 欧美中文日韩国产字幕| 日本午夜在线观看视频| 日韩精品成人一区二区三区免费| 五月婷婷丁香婷婷丁香| 国产精品久久一区二区三区蜜桃| 激情亚洲不卡一区二区| 国产熟女乱免费一区二区| 日韩不卡一区二区三区| 欧洲女人av天堂精品| 国产三级自拍视频在线观看| 国产成人亚洲合色婷婷| 亚洲精品黄色片中文字幕| 日韩一区精品视频一区二区| 国产精品一级自拍视频| 成人做爰片免费看视频| 亚洲精品第一国产综合| 成人免费大片在线观看视频| 高清免费欧美大片在线观看| 18禁在线免费观看网站| av免费在线不卡观看| 日韩亚洲毛片全在线播放| 97国产免费全部免费观看|