成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

PHP擴(kuò)展之文本處理(二)——PCRE正則表達(dá)式語法3——轉(zhuǎn)義序列(反斜線)

瀏覽:126日期:2022-09-15 18:48:40

反斜線有多種用法。首先,如果緊接著是一個(gè)非字母數(shù)字字符,表明取消 該字符所代表的特殊涵義。這種將反斜線作為轉(zhuǎn)義字符的用法在字符類 內(nèi)部和外部都可用。

比如,如果你希望匹配一個(gè) '*' 字符,就需要在模式中寫為 '*'。 這適用于一個(gè)字符在不進(jìn)行轉(zhuǎn)義會(huì)有特殊含義的情況下。 但是, 對(duì)于非數(shù)字字母的字符,總是在需要其進(jìn)行原文匹配的時(shí)候在它前面增加一個(gè)反斜線, 來聲明它代表自己,這是安全的。如果要匹配一個(gè)反斜線,那么在模式中使用 ””。

Note:

反斜線在單引號(hào)字符串和雙引號(hào)字符串?中都有特殊含義,因此要匹配一個(gè)反斜線, 模式中必須寫為 ””。 譯注: “//”, 首先它作為字符串,反斜線會(huì)進(jìn)行轉(zhuǎn)義, 那么轉(zhuǎn)義后的結(jié)果是//,這個(gè)才是正則表達(dá)式引擎拿到的模式, 而正則表達(dá)式引擎也認(rèn)為 是轉(zhuǎn)義標(biāo)記,它會(huì)將分隔符 / 進(jìn)行轉(zhuǎn)義, 從而得到的是一個(gè)錯(cuò)誤,因此,需要 4 個(gè)反斜線才可以匹配一個(gè)反斜線。

如果一個(gè)模式被使用?PCRE_EXTENDED?選項(xiàng)編譯, 模式中的空白字符(除了字符類中的)和未轉(zhuǎn)義的#到行末的所有字符都會(huì)被忽略。 要在這種情況下使用空白字符或者#,就需要對(duì)其進(jìn)行轉(zhuǎn)義。

反斜線的第二種用途提供了一種對(duì)非打印字符進(jìn)行可見編碼的控制手段。 除了二進(jìn)制的 0 會(huì)終結(jié)一個(gè)模式外,并不會(huì)嚴(yán)格的限制非打印字符(自身)的出現(xiàn), 但是當(dāng)一個(gè)模式以文本編輯器的方式編輯準(zhǔn)備的時(shí)候, 使用下面的轉(zhuǎn)義序列相比使用二進(jìn)制字符會(huì)更加容易。

a響鈴字符(十六進(jìn)制 07)cx'control-x',x 是任意字符e轉(zhuǎn)義 (十六進(jìn)制 1B)f換頁 (十六進(jìn)制 0C)n換行 (十六進(jìn)制 0A)p{xx}一個(gè)符合 xx 屬性的字符P{xx}一個(gè)不符合xx屬性的字符r回車 (十六進(jìn)制 0D)t水平制表符 (十六進(jìn)制 09)xhhhh十六進(jìn)制編碼的字符dddddd八進(jìn)制編碼的字符,或者后向引用

cx的確切效果如下: 如果x是一個(gè)小寫字母,它被轉(zhuǎn)換為大寫。接著, 將字符的第6位(十六進(jìn)制 40,右數(shù)第一個(gè)位為第0位)取反。 比如cz成為十六進(jìn)制的1A,c{成為十六進(jìn)制3B,?c;成為十六進(jìn)制7B。

在”x”后面,讀取兩個(gè)十六進(jìn)制數(shù)(字母可以是大寫或小寫)。 在UTF-8模式, “x{…}”允許使用, 花括號(hào)內(nèi)的內(nèi)容是十六進(jìn)制有效數(shù)字。 它將給出的十六進(jìn)制數(shù)字解釋為 UTF-8 字符代碼。原來的十六進(jìn)制轉(zhuǎn)義序列,?xhh, 匹配一個(gè)雙字節(jié)的UTF-8字符,如果它的值大于127

在”0”之后, 讀取兩個(gè)八進(jìn)制數(shù)。所有情況下,如果數(shù)少于2個(gè),則直接使用。 序列 ”0x07” 指定了兩個(gè)二進(jìn)制 0 緊跟著一個(gè) BEL 字符。 請(qǐng)確保初始的 0 之后的兩個(gè)數(shù)字是合法的八進(jìn)制數(shù)。

處理一個(gè)反斜線緊跟著的不是0的數(shù)字的情況比較復(fù)雜。在字符類外部, PCRE 讀取它并以十進(jìn)制讀取緊隨其后的數(shù)字。 如果數(shù)值小于 10, 或者之前捕獲到了該數(shù)字能夠代表的左括號(hào)(子組), 整個(gè)數(shù)字序列被認(rèn)為是后向引用。后向引用如何工作在后面描述, 接下來就會(huì)討論括號(hào)子組。

在一個(gè)字符類里面,或者十進(jìn)制數(shù)大于 9 并且沒有那么多的子組被捕獲, PCRE 重新讀取反斜線后的第三個(gè) 8 進(jìn)制數(shù)字,并且從最低的 8 位生成單字節(jié)值。 任何的后續(xù)數(shù)字都代表它們自身。例如:

040空格的另外一種用法40當(dāng)提供了少于40個(gè)子組時(shí)也認(rèn)為是空格。7始終是后向引用11可能是后向引用,也可能是制表符011總是一個(gè)制表符0113一個(gè)制表符緊跟著一個(gè)3(因?yàn)槊看巫疃嘀蛔x取3個(gè)8進(jìn)制位113八進(jìn)制113代表的字符3778進(jìn)制377是10進(jìn)制255, 因此代表一個(gè)全1的字符81一個(gè)后向引用或者一個(gè)二進(jìn)制 0 緊跟著兩個(gè)數(shù)字 8 和 1(因?yàn)?不是8進(jìn)制有效數(shù)字)

注意,八進(jìn)制值的 100 或者更大的值必須沒有前置的0引導(dǎo), 因?yàn)槊看巫疃嘧x取3個(gè)8進(jìn)制位.

所有序列定義的單字節(jié)值都可以在字符類內(nèi)部或外部使用。另外,在字符類中, 序列 ”b” 解釋為退格字符。字符類外它又有不同的意義(下面有描述)

反斜線的第三種用法是用來描述特定的字符類:

d任意十進(jìn)制數(shù)字D任意非十進(jìn)制數(shù)字h任意水平空白字符(since PHP 5.2.4)H任意非水平空白字符(since PHP 5.2.4)s任意空白字符S任意非空白字符v任意垂直空白字符(since PHP 5.2.4)V任意非垂直空白字符(since PHP 5.2.4)w任意單詞字符W任意非單詞字符

上面每一對(duì)轉(zhuǎn)義序列都代表了完整字符集中兩個(gè)不相交的部分, 任意字符一定會(huì)匹配其中一個(gè),同時(shí)一定不會(huì)匹配另外一個(gè)。

單詞字符指的是任意字母、數(shù)字、下劃線。 也就是說任意可以組成perl單詞的字符。 字母和數(shù)字的定義通過PCRE字符表控制,可以通過指定地域設(shè)置使其匹配改變。比如, 在法國 (fr) 地域設(shè)置中,一些超過 128 的字符代碼被用于重音字母, 它們可以實(shí)用?w?匹配。

這些字符類序列在字符類內(nèi)部或外部都可以出現(xiàn)。 他們每次匹配所代表的字符類型中的一個(gè)字符。 如果當(dāng)前匹配點(diǎn)位于目標(biāo)字符串末尾, 它們中的所有字符都匹配失敗, 因?yàn)闆]有字符讓它們匹配了。

反斜線的第四種用法是一些簡單的斷言。 一個(gè)斷言指定一個(gè)必須在特定位置匹配的條件, 它們不會(huì)從目標(biāo)字符串中消耗任何字符。 接下來我們會(huì)討論使用子組的更加復(fù)雜的斷言。 反斜線斷言包括:

b單詞邊界B非單詞邊界A目標(biāo)的開始位置(獨(dú)立于多行模式)Z目標(biāo)的結(jié)束位置或結(jié)束處的換行符(獨(dú)立于多行模式)z目標(biāo)的結(jié)束位置(獨(dú)立于多行模式)G在目標(biāo)中首次匹配位置

這些斷言不能出現(xiàn)在字符類中(但是注意, “b”在字符類中有不同的意義, 表示的是退格(backspace)字符)

一個(gè)單詞邊界表示的是在目標(biāo)字符串中, 當(dāng)前字符和前一個(gè)字符不同時(shí)匹配w或W(一個(gè)比配w, 一個(gè)匹配W), 或者作為字符串開始或結(jié)尾字符的時(shí)候當(dāng)前字符匹配w。

A,?Z,?z斷言不同于傳統(tǒng)的^和$(詳見下文), 因?yàn)樗麄冇肋h(yuǎn)匹配目標(biāo)字符串的開始和結(jié)尾,而不會(huì)受模式修飾符的限制。 它們不受PCRE_MULTILINE,PCRE_DOLLAR_ENDONLY選項(xiàng)的影響。?Z?和?z?之間的不同在于當(dāng)字符串結(jié)束字符時(shí)換行符時(shí)?Z?會(huì)將其看做字符串結(jié)尾匹配, 而?z?只匹配字符串結(jié)尾。

G?斷言在指定了$offset?參數(shù)的?preg_match()?調(diào)用中, 僅在當(dāng)前匹配位置在匹配開始點(diǎn)的時(shí)候才是成功的。 當(dāng)$offset?的值不為 0 的時(shí)候, 它與?A?是不同的。 譯注:另外一點(diǎn)與?A?的不同之處在于使用 preg_match_all() 時(shí), 每次匹配?G?只是斷言是否是匹配結(jié)果的開始位置, 而?A?斷言的則是匹配結(jié)果的開始位置是否在目標(biāo)字符串開始位置。

自 PHP 4.3.3開始,?Q?和?E?可以用于在模式中忽略正則表達(dá)式元字符。比如:?w+Q.$.E$?會(huì)匹配一個(gè)或多個(gè)單詞字符,緊接著一個(gè)點(diǎn)號(hào),一個(gè)$,一個(gè)點(diǎn)號(hào), 最后錨向字符串末尾。

自 PHP 5.2.4 開始。?K?可以用于重置匹配。 比如,?footKbar?匹配”footbar”。 但是得到的匹配結(jié)果是 ”bar”。但是,K?的使用不會(huì)干預(yù)到子組內(nèi)的內(nèi)容, 比如?(foot)Kbar?匹配 ”footbar”,第一個(gè)子組內(nèi)的結(jié)果仍然會(huì)是 ”foo”。譯注: K 放在子組和子組外面的效果是一樣的。

標(biāo)簽: PHP
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲综合另类小说| 先锋a资源在线看亚洲| 久久国产精品免费一区| 久久久99免费| 国产一本一道久久香蕉| 欧美精品自拍偷拍动漫精品| 奇米色777欧美一区二区| 国产欧美短视频| 亚洲日穴在线视频| 欧美视频导航| 国产欧美精品一区aⅴ影院| 成人黄色小视频| 日韩欧美国产一区二区三区| 国产成人综合自拍| 91精品国产91久久久久久最新毛片 | 日韩精彩视频在线观看| 欧美资源在线| 同产精品九九九| 日本精品一区二区三区四区的功能| 婷婷中文字幕一区三区| 色婷婷综合久久久中文字幕| 图片区小说区国产精品视频| 一本色道久久综合亚洲精品按摩| 日韩精品乱码免费| 91精品91久久久中77777| 欧美a级一区二区| 欧美视频三区在线播放| 国产一区二区三区四区五区美女| 欧美精品色一区二区三区| 国产精品系列在线观看| 日韩一级片在线观看| 不卡电影免费在线播放一区| 久久日韩精品一区二区五区| 欧美精品系列| 亚洲综合区在线| 久久亚洲综合| 久久99久久99| 91精品国产91久久久久久一区二区 | 亚洲永久在线| 日韩高清在线不卡| 欧美日韩国产成人在线免费| 国产91精品免费| 精品国偷自产国产一区| 欧美1级日本1级| 日韩理论在线观看| 国产精品一二| 日韩高清不卡一区二区| 在线精品视频一区二区| 国产精品影视天天线| 久久嫩草精品久久久精品一| 欧美三级特黄| 亚洲国产日日夜夜| 欧美日韩一区中文字幕| 成人综合婷婷国产精品久久| 国产午夜一区二区三区| 国产欧美日韩在线播放| 美女免费视频一区二区| 欧美一级黄色录像| 欧美日韩在线一二三| 亚洲一卡二卡三卡四卡无卡久久| 欧美性色黄大片| 99国产精品国产精品久久| 一区精品在线播放| 日本韩国欧美在线| 成人av免费网站| 亚洲乱码国产乱码精品精98午夜 | 亚洲精品欧美专区| 成人午夜在线视频| 成人欧美一区二区三区黑人麻豆 | 91久久免费观看| 5566中文字幕一区二区电影 | 国产亚洲欧美一区二区 | 美女视频一区二区| 久久新电视剧免费观看| 一区二区三区福利| 免费观看成人av| 欧美国产视频在线| 色婷婷av一区二区| 欧美成人有码| 日本不卡高清视频| 国产日韩欧美综合在线| 老司机精品久久| 欧美91精品| 蜜臀久久99精品久久久画质超高清 | 成人伦理片在线| 亚洲一区在线观看免费| 欧美顶级少妇做爰| 亚洲精品字幕| 国产成人av一区二区| 夜夜夜精品看看| 精品对白一区国产伦| 美女黄网久久| 91色.com| 麻豆国产精品777777在线| 中国色在线观看另类| 欧美性猛交xxxxxxxx| 国内外成人免费视频| 国产一区二区三区免费观看| 亚洲乱码中文字幕| 精品国产成人系列| 久久亚洲美女| 欧美精品亚洲精品| 精品一区二区在线播放| 亚洲天堂成人网| 欧美一区二区精品| 美日韩精品免费| 欧美日韩免费| 国产一区二区久久| 午夜伦欧美伦电影理论片| 国产网站一区二区| 欧美乱妇一区二区三区不卡视频| 亚洲精品激情| av在线这里只有精品| 蜜臀久久久99精品久久久久久| 中文字幕在线观看不卡| 欧美大片免费久久精品三p| 久久久久久9| 一区二区亚洲精品| 成人av在线网站| 免费在线成人网| 亚洲手机成人高清视频| 欧美电影免费观看高清完整版在线观看 | 精品在线观看视频| 亚洲国产精品一区二区久久恐怖片| 久久精品一区蜜桃臀影院| 欧美日韩激情一区二区| 一区二区三区四区国产| 午夜精品亚洲一区二区三区嫩草| 狠狠狠色丁香婷婷综合激情| 香蕉久久夜色精品国产使用方法| 国产精品高潮呻吟| 2023国产精华国产精品| 欧美视频一区在线| 亚洲一区二区在线看| 国产精品二区三区四区| av资源网一区| 国产精品资源网| 男人的j进女人的j一区| 一级女性全黄久久生活片免费| 久久精品视频免费| 日韩欧美国产系列| 在线观看视频一区二区| 性8sex亚洲区入口| 日韩视频不卡| 国产在线日韩| 91网站视频在线观看| 国产精品主播直播| 美国十次综合导航| 日韩av不卡在线观看| 亚洲第一电影网| 亚洲自拍偷拍九九九| 亚洲免费观看在线观看| 成人免费在线视频| 国产精品大尺度| 中文字幕高清不卡| 日本一区免费视频| 精品国产免费久久| 日韩女同互慰一区二区| 日韩欧美黄色影院| 欧美不卡一区二区三区| 日韩一区二区免费高清| 欧美一级视频精品观看| 3d动漫精品啪啪1区2区免费| 欧美性色黄大片| 欧美伊人久久久久久久久影院| 色综合久久久久综合99| 久久精品一区二区三区中文字幕| 国产精品主播| 国产亚洲精品bv在线观看| 亚洲乱码视频| 伊人久久亚洲热| 亚洲五月婷婷| 亚洲国产mv| 亚洲免费不卡| 国产精品一二| 久久综合狠狠综合久久综青草| 久久久xxx| 欧美在线视频日韩| 欧美性感一区二区三区| 91精品国产91久久久久久最新毛片 | 久久99久久久久久久久久久| 九九热在线视频观看这里只有精品| 蜜臀精品一区二区三区在线观看 | 欧美日韩免费观看一区三区| 欧美日韩国产精选| 666欧美在线视频| 欧美成人艳星乳罩| 久久一二三国产| 欧美国产一区二区在线观看| 国产精品乱码久久久久久| 亚洲欧洲精品天堂一级| 成人免费小视频| 亚洲免费在线电影| 日韩国产欧美在线视频| 国产在线视频一区二区三区| 成人丝袜18视频在线观看| 欧美日韩在线一二三| 亚洲精品日韩在线观看| 久久久噜噜噜| 欧美放荡的少妇|