久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

PHP擴展之文本處理(二)——PCRE正則表達式語法5——錨和句點

瀏覽:105日期:2022-09-15 18:54:46

在一個字符類外面,在默認匹配模式下,?^?是一個斷言當(dāng)前匹配點位于目標(biāo)字符串開始處的斷言。在一個字符類內(nèi)部,?^?表明這個字符類中描述的字符取反(詳見下文)。

^?并不一定要是模式的第一個字符, 但是如果處于某個可選分支時, 它應(yīng)該是該分支的首字符。如果所有選擇分支都以?^?開頭,這就是說, 如果模式限制為只匹配目標(biāo)的開頭, 它被稱為是一個 ”緊固” 模式。(同樣也有其他方式可以構(gòu)造出緊固模式)

$?是用于斷言當(dāng)前匹配點位于目標(biāo)字符串末尾, 或當(dāng)目標(biāo)字符串以換行符結(jié)尾時當(dāng)前匹配點位于該換行符位置(默認情況)。?$?不一定要作為模式的最后一個字符,但是如果它在某個可選分支中時, 就應(yīng)該位于該分支的末尾。?$?在字符類中沒有特殊的意義。

$?的意義可以通過在編譯或匹配時設(shè)置?PCRE_DOLLAR_ENDONLY?改變?yōu)橹黄ヅ渥址┪病?這不會影響 Z 斷言的行為。

^?和?$?字符的意義在?PCRE_MULTILINE?選項被設(shè)置時會發(fā)生變化。 當(dāng)在這種情況下時, 它們匹配每一個換行符后面的和前面的字符,另外, 也會匹配目標(biāo)字符串的開始和結(jié)束。比如, 模式 /^abc$/ 在多行模式下會成功匹配目標(biāo)字符串 ”defnabc”, 而正常情況下不會。因此,由于所有的可選分支都以 ^ 開始, 在單行模式下這成為緊固模式,然而在多行模式下,這是非緊固的。?PCRE_DOLLAR_ENDONLY?選項在PCRE_MULTILINE?設(shè)置后失效。

注意: A、Z、 z 等轉(zhuǎn)義序列可以在任何模式下用于匹配目標(biāo)字符串的開始和結(jié)束位置。 并且如果模式的所有分支都以 A 開始,它同樣是緊固的, 而與?PCRE_MULTILINE?是否設(shè)置無關(guān)。

句點

在字符類外部,模式中的句點匹配目標(biāo)字符串中的任意字符,包括非打印字符, 但是(默認)不包括換行符。如果?PCRE_DOTALL?被設(shè)置,句點就會匹配換行符。 句點的處理和^、$的處理沒有關(guān)聯(lián),它們唯一的關(guān)系是它們都涉及到了換行符。 句點在字符類中沒有任何意義。

C可以被用于匹配單字節(jié), 也就是說在UTF-8模式下,句點可以匹配多字節(jié)字符。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 衡山县| 武城县| 宁夏| 房产| 廊坊市| 桦川县| 西乌| 大同市| 金沙县| 清丰县| 沿河| 盐津县| 张家口市| 江油市| 沈阳市| 柳州市| 聂拉木县| 保靖县| 广河县| 法库县| 舒兰市| 祁东县| 金溪县| 平武县| 襄城县| 广昌县| 阜新市| 大石桥市| 崇文区| 石泉县| 镇雄县| 武功县| 禹城市| 神池县| 平昌县| 临猗县| 永川市| 陵川县| 增城市| 西乡县| 东辽县|