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

首頁 > 編程 > Regex > 正文

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

2020-03-22 18:21:52
字體:
供稿:網(wǎng)友
html' target='_blank'>正則表達(dá)式從左到右進(jìn)行計算,并遵循優(yōu)先級順序,這與算術(shù)表達(dá)式非常類似。相同優(yōu)先級的從左到右進(jìn)行運算,不同優(yōu)先級的運算先高后低。下表從最高到最低說明了各種正則表達(dá)式運算符的優(yōu)先級順序:
替換,"或"操作
字符具有高于替換運算符的優(yōu)先級,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",請使用括號創(chuàng)建子表達(dá)式,從而產(chǎn)生"(m|f)ood"。
今天的表是對整體的正則表達(dá)式語法中的元字符的分類匯總。幫助記憶各元字符。同上一樣,該文檔轉(zhuǎn)載至MSDN。
下表從最高到最低說明了各種正則表達(dá)式運算符的優(yōu)先級順序:
字符具有高于替換運算符的優(yōu)先級,使得“m|food”匹配“m”或“food”。若要匹配“mood”或“food”,請使用括號創(chuàng)建子表達(dá)式,從而產(chǎn)生“(m|f)ood”。特殊字符表
匹配輸入字符串結(jié)尾的位置。如果設(shè)置了 RegExp 對象的 Multiline 屬性,那么 $ 還匹配 /n 或 /r 前面的位置。若要匹配 $ 字符本身,請使用 /$。
標(biāo)記子表達(dá)式的開始和結(jié)束。可以捕獲子表達(dá)式以供以后使用。若要匹配這兩個字符,請使用 /( 和 /)。
零次或一次匹配前面的字符或子表達(dá)式,或指示“非貪心”限定符。若要匹配 字符,請使用 / 。
將下一字符標(biāo)記為特殊字符、文本、反向引用或八進(jìn)制轉(zhuǎn)義符。例如,字符 n 匹配字符 n。/n 匹配換行符。序列 // 匹配 /,序列 /( 匹配 (。
匹配輸入字符串開始處的位置,但在中括號表達(dá)式中使用的情況除外,在那種情況下它對字符集求反。若要匹配 ^ 字符本身,請使用 /^。
一次或多次匹配前面的字符或子表達(dá)式。例如,zo+ 匹配 zo 和 zoo,但不匹配 z。+ 等效于 {1,}。
零次或一次匹配前面的字符或子表達(dá)式。例如,do(es) 匹配 do 或 does 中的 do。 等效于 {0,1}。
n 是非負(fù)整數(shù)。正好匹配 n 次。例如,o{2} 不匹配 Bob 中的 o,但匹配 food 中的兩個 o。
n 是非負(fù)整數(shù)。至少匹配 n 次。例如,o{2,} 不匹配 Bob 中的 o,而匹配 foooood 中的所有 o。o{1,} 等效于 o+。o{0,} 等效于 o*。
m 和 n 是非負(fù)整數(shù),其中 n = m。匹配至少 n 次,至多 m 次。例如,o{1,3} 匹配 fooooood 中的頭三個 o。o{0,1} 等效于 o 。注意:您不能將空格插入逗號和數(shù)字之間。
由于章節(jié)編號在大的輸入文檔中會很可能超過九,所以您需要一種方式來處理兩位或三位章節(jié)編號。限定符給您這種能力。下面的正則表達(dá)式匹配編號為任何位數(shù)的章節(jié)標(biāo)題:
請注意,限定符出現(xiàn)在范圍表達(dá)式之后。因此,它應(yīng)用于整個范圍表達(dá)式,在本例中,只指定從 0 到 9 的數(shù)字(包括 0 和 9)。這里不使用 + 限定符,因為在第二個位置或后面的位置不一定需要有一個數(shù)字。也不使用?字符,因為它將章節(jié)編號限制到只有兩位數(shù)。您需要至少匹配 Chapter 和空格字符后面的一個數(shù)字。如果您知道章節(jié)編號被限制為只有 99 章,可以使用下面的表達(dá)式來至少指定一位但至多兩位數(shù)字。
上面的表達(dá)式的缺點是,大于 99 的章節(jié)編號仍只匹配開頭兩位數(shù)字。另一個缺點是 Chapter 0 也將匹配。只匹配兩位數(shù)字的更好的表達(dá)式如下:
*、+ 和 限定符都被稱為“貪心的”,因為它們匹配盡可能多的文本。但是,有時您只需要最小的匹配。例如,您可能搜索 HTML 文檔,以查找括在 H1 標(biāo)記內(nèi)的章節(jié)標(biāo)題。該文本在您的文檔中如下:
下面的表達(dá)式匹配從開始小于符號 ( ) 到關(guān)閉 H1 標(biāo)記的大于符號 ( ) 之間的所有內(nèi)容。
通過在 *、+ 或 限定符之后放置 ,該表達(dá)式從“貪心”表達(dá)式轉(zhuǎn)換為“非貪心”表達(dá)式或者最小匹配。PHP教程

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 红原县| 隆化县| 大竹县| 克什克腾旗| 唐山市| 江华| 鹿泉市| 武邑县| 资兴市| 平昌县| 榕江县| 湟中县| 灵丘县| 连南| 博乐市| 正宁县| 桃园市| 日喀则市| 玛多县| 萨嘎县| 泉州市| 利辛县| 乐东| 尤溪县| 磐石市| 灵川县| 庆阳市| 阳曲县| 芮城县| SHOW| 霞浦县| 孝昌县| 武鸣县| 玉林市| 石棉县| 靖边县| 土默特右旗| 普洱| 禹城市| 香格里拉县| 和龙市|