麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Regex > 正文

正則表達(dá)式 運(yùn)算符優(yōu)先級(jí)介紹

2020-03-16 20:59:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
正則表達(dá)式從左到右進(jìn)行計(jì)算,并遵循優(yōu)先級(jí)順序,這與算術(shù)表達(dá)式非常類似
 

正則表達(dá)式從左到右進(jìn)行計(jì)算,并遵循優(yōu)先級(jí)順序,這與算術(shù)表達(dá)式非常類似。

相同優(yōu)先級(jí)的從左到右進(jìn)行運(yùn)算,不同優(yōu)先級(jí)的運(yùn)算先高后低。下表從最高到最低說(shuō)明了各種正則表達(dá)式運(yùn)算符的優(yōu)先級(jí)順序:

運(yùn)算符 描述
/ 轉(zhuǎn)義符
(), (?:), (?=), [] 圓括號(hào)和方括號(hào)
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, /任何元字符、任何字符 定位點(diǎn)和序列(即:位置和順序)
| 替換,"或"操作
字符具有高于替換運(yùn)算符的優(yōu)先級(jí),使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",請(qǐng)使用括號(hào)創(chuàng)建子表達(dá)式,從而產(chǎn)生"(m|f)ood"。

今天的表是對(duì)整體的正則表達(dá)式語(yǔ)法中的元字符的分類匯總。幫助記憶各元字符。同上一樣,該文檔轉(zhuǎn)載至MSDN。

 

運(yùn)算符

 

下表從最高到最低說(shuō)明了各種正則表達(dá)式運(yùn)算符的優(yōu)先級(jí)順序:

 

運(yùn)算符

說(shuō)明

/

轉(zhuǎn)義符

(), (?:), (?=), []

括號(hào)和中括號(hào)

*, +, ?, {n}, {n,}, {n,m}

限定符

^, $, /任何元字符、任何字符

定位點(diǎn)和序列

|

替換

 

字符具有高于替換運(yùn)算符的優(yōu)先級(jí),使得“m|food”匹配“m”或“food”。若要匹配“mood”或“food”,請(qǐng)使用括號(hào)創(chuàng)建子表達(dá)式,從而產(chǎn)生“(m|f)ood”。

 

特殊字符表

 

 

特殊字符

注釋

$

匹配輸入字符串結(jié)尾的位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,那么 $ 還匹配 /n 或 /r 前面的位置。若要匹配 $ 字符本身,請(qǐng)使用 /$。

( )

標(biāo)記子表達(dá)式的開始和結(jié)束。可以捕獲子表達(dá)式以供以后使用。若要匹配這兩個(gè)字符,請(qǐng)使用 /( 和 /)。

*

零次或多次匹配前面的字符或子表達(dá)式。若要匹配 * 字符,請(qǐng)使用 /*。

+

一次或多次匹配前面的字符或子表達(dá)式。若要匹配 + 字符,請(qǐng)使用 /+。

.

匹配除換行符 /n 之外的任何單個(gè)字符。若要匹配 .,請(qǐng)使用 /。

[ ]

標(biāo)記中括號(hào)表達(dá)式的開始。若要匹配這些字符,請(qǐng)使用 /[ 和 /]。

?

零次或一次匹配前面的字符或子表達(dá)式,或指示“非貪心”限定符。若要匹配 ? 字符,請(qǐng)使用 /?。

/

將下一字符標(biāo)記為特殊字符、文本、反向引用或八進(jìn)制轉(zhuǎn)義符。例如,字符 n 匹配字符 n。/n 匹配換行符。序列 // 匹配 /,序列 /( 匹配 (。

/

表示文本正則表達(dá)式的開始或結(jié)束。若要匹配 / 字符,請(qǐng)使用 //。

^

匹配輸入字符串開始處的位置,但在中括號(hào)表達(dá)式中使用的情況除外,在那種情況下它對(duì)字符集求反。若要匹配 ^ 字符本身,請(qǐng)使用 /^。

{ }

標(biāo)記限定符表達(dá)式的開始。若要匹配這些字符,請(qǐng)使用 /{ 和 /}。

|

指出在兩個(gè)項(xiàng)之間進(jìn)行選擇。要匹配 |,請(qǐng)使用 /|。

 

 

限定符含義

 

 

字符

說(shuō)明

*

零次或多次匹配前面的字符或子表達(dá)式。例如,zo* 匹配 z 和 zoo。* 等效于 {0,}。

+

一次或多次匹配前面的字符或子表達(dá)式。例如,zo+ 匹配 zo 和 zoo,但不匹配 z。+ 等效于 {1,}。

?

零次或一次匹配前面的字符或子表達(dá)式。例如,do(es)? 匹配 do 或 does 中的 do。? 等效于 {0,1}。

{n}

n 是非負(fù)整數(shù)。正好匹配 n 次。例如,o{2} 不匹配 Bob 中的 o,但匹配 food 中的兩個(gè) o。

{n,}

n 是非負(fù)整數(shù)。至少匹配 n 次。例如,o{2,} 不匹配 Bob 中的 o,而匹配 foooood 中的所有 o。o{1,} 等效于 o+。o{0,} 等效于 o*。

{n,m}

m 和 n 是非負(fù)整數(shù),其中 n <= m。匹配至少 n 次,至多 m 次。例如,o{1,3} 匹配 fooooood 中的頭三個(gè) o。o{0,1} 等效于 o?。注意:您不能將空格插入逗號(hào)和數(shù)字之間。

 

由于章節(jié)編號(hào)在大的輸入文檔中會(huì)很可能超過(guò)九,所以您需要一種方式來(lái)處理兩位或三位章節(jié)編號(hào)。限定符給您這種能力。下面的正則表達(dá)式匹配編號(hào)為任何位數(shù)的章節(jié)標(biāo)題:

 

/Chapter [1-9][0-9]*/

 

請(qǐng)注意,限定符出現(xiàn)在范圍表達(dá)式之后。因此,它應(yīng)用于整個(gè)范圍表達(dá)式,在本例中,只指定從 0 到 9 的數(shù)字(包括 0 和 9)。

這里不使用 + 限定符,因?yàn)樵诘诙€(gè)位置或后面的位置不一定需要有一個(gè)數(shù)字。也不使用?字符,因?yàn)樗鼘⒄鹿?jié)編號(hào)限制到只有兩位數(shù)。您需要至少匹配 Chapter 和空格字符后面的一個(gè)數(shù)字。

如果您知道章節(jié)編號(hào)被限制為只有 99 章,可以使用下面的表達(dá)式來(lái)至少指定一位但至多兩位數(shù)字。

 

/Chapter [0-9]{1,2}/

 

上面的表達(dá)式的缺點(diǎn)是,大于 99 的章節(jié)編號(hào)仍只匹配開頭兩位數(shù)字。另一個(gè)缺點(diǎn)是 Chapter 0 也將匹配。只匹配兩位數(shù)字的更好的表達(dá)式如下:

 

/Chapter [1-9][0-9]?/

 

 

/Chapter [1-9][0-9]{0,1}/

 

*、+ 和 ? 限定符都被稱為“貪心的”,因?yàn)樗鼈兤ヅ浔M可能多的文本。但是,有時(shí)您只需要最小的匹配。

例如,您可能搜索 HTML 文檔,以查找括在 H1 標(biāo)記內(nèi)的章節(jié)標(biāo)題。該文本在您的文檔中如下:

 

<H1>Chapter 1 – Introduction to Regular Expressions</H1>

 

下面的表達(dá)式匹配從開始小于符號(hào) (<) 到關(guān)閉 H1 標(biāo)記的大于符號(hào) (>) 之間的所有內(nèi)容。

 

/<.*>/

 

如果您只需要匹配開始 H1 標(biāo)記,下面的“非貪心”表達(dá)式只匹配 <H1>。

 

/<.*?>/

 

通過(guò)在 *、+ 或 ? 限定符之后放置 ?,該表達(dá)式從“貪心”表達(dá)式轉(zhuǎn)換為“非貪心”表達(dá)式或者最小匹配。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到正則表達(dá)式頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜视频在线免费播放 | 国产羞羞视频在线观看 | h网站在线观看 | 成人宗合网 | 精品国产一区二区三区天美传媒 | 99riav国产在线观看 | 亚洲成人欧美在线 | 看国产精品 | 国产一级在线免费观看 | 最新中文在线视频 | 国产亚洲精品美女久久久 | 成人在线观看网 | 在线观看美女av | 久久久免费电影 | 国产精品热 | 国产精品成人久久久久a级 欧美特黄一级高清免费的香蕉 | av电影在线网 | 美女又黄又www | 一区二区久久精品66国产精品 | 亚洲一区二区三区精品在线观看 | 国产精品视频不卡 | 色播一区| 亚洲影院在线播放 | 亚洲爱爱图 | 午夜小网站 | 欧美成人精品欧美一级乱黄 | 毛片大全在线观看 | 亚洲精品一二三区 | 久久国产精品99国产 | 免费永久看羞羞片网站入口 | 超碰人人做人人爱 | www.guochanav.com | a一级黄色大片 | 最新欧美精品一区二区三区 | 91九色国产视频 | 污片视频网站 | 国产亚洲精品久久 | 热99在线视频| videos韩国 | 久久综合久久美利坚合众国 | 黄色的视频免费观看 |