php正則特殊字符轉(zhuǎn)義的方法-創(chuàng)新互聯(lián)

這篇文章主要介紹php正則特殊字符轉(zhuǎn)義的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)專注于吳江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站制作。吳江網(wǎng)站建設(shè)公司,為吳江等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

php正則特殊字符轉(zhuǎn)義的方法:首先創(chuàng)建PHP示例文件;然后定義字符串;最后通過反斜杠對(duì)特殊字符進(jìn)行轉(zhuǎn)義,并對(duì)變量進(jìn)行解析即可。

問題

最近使用PHP正則表達(dá)式,書寫表達(dá)式字符串的時(shí)候遇到了一些問題,不知道何時(shí)需要用反斜杠“\”,現(xiàn)在進(jìn)行一些梳理。

PHP字符串

PHP字符串的定義方法有4種:

  • 單引號(hào)
  • 雙引號(hào)
  • heredoc 語(yǔ)法結(jié)構(gòu)
  • nowdoc 語(yǔ)法結(jié)構(gòu) (自PHP 5.3.0以后)

在定義字符串的時(shí)候,會(huì)對(duì)特殊字符進(jìn)行轉(zhuǎn)義,對(duì)變量進(jìn)行解析。

特殊字符包括:

項(xiàng)目內(nèi)容備注
換行\nLF 或 0x0A
回車\rCR 或 0x0D
水平制表符\tHT 或 0x09
垂直制表符\vVT 或 0x0B
換頁(yè)\fFF 或 0x0C
反斜杠\\
美元符號(hào)\$
雙引號(hào)\"
單引號(hào)\'
8進(jìn)制字符\[0-7]{1,3}
16進(jìn)制字符\x[0-9A-Fa-f]{1,2}

這部分詳見 PHP Mannual ,這里簡(jiǎn)要記述一下:

單引號(hào)中,對(duì)單引號(hào)(')與反斜杠(\)進(jìn)行轉(zhuǎn)義,對(duì)其它字符原意輸出;

雙引號(hào)中,對(duì)除雙引號(hào)(\")的特殊字符進(jìn)行轉(zhuǎn)義,對(duì)變量進(jìn)行解析。

因此,在這兩種常見的字符串定義中,對(duì)反斜杠(\)總是要轉(zhuǎn)義的。

PHP 正則表達(dá)式

PHP提供了兩套正則表達(dá)式函數(shù)庫(kù):【參考】

一套是由PCRE(Perl Compatible Regular Expression)庫(kù)提供的。使用“preg_”為前綴命名的函數(shù);
一套由POSIX(Portable Operating System Interface of Unix )擴(kuò)展提供的(PHP默認(rèn))。使用以“ereg_”為前綴命名的函數(shù);

正則表達(dá)式提供了匹配、替換、分割的功能。

目前只是用了perl風(fēng)格的正則函數(shù),以下僅對(duì)這類的字符串進(jìn)行說明。

Perl風(fēng)格的正則表達(dá)式,要求包含在定界符("/" 或 "#")中,如下面這樣:【參考】

$str = '/tupian/20230522/y404
$regex = '/^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$/i';
$regex = '#^http://([\w.]+)/([\w]+)/([\w]+)\.html$#i';

為了將一個(gè)URL進(jìn)行分割,$regex 變量定義了正則表達(dá)式字符串:

^http://([\w.]+)/([\w]+)/([\w]+).html$

這個(gè)字符串包含了一些特殊字符,如"/" 與".",這在Perl風(fēng)格中需要用反斜杠("\")進(jìn)行轉(zhuǎn)義定義,如下:

^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$

同時(shí)這個(gè)字符串需要被包含在定界符中,于是就有了上面的兩類表示方式;以"#"為定界符的,不需要對(duì)其中的"/" 進(jìn)行轉(zhuǎn)義。

正則表達(dá)式轉(zhuǎn)義

在正則表達(dá)式中,若要匹配以下單個(gè)字符,都需要用反斜杠("\")進(jìn)行轉(zhuǎn)義:

"\"、"?"、"*"、"^"、"$"、"+"、"("、")"、"|"、"{"、"["

在Perl風(fēng)格的正則表達(dá)式中,如果匹配以下單個(gè)字符,或者上面未匹配的單個(gè)字符,還需要用反斜杠("\")進(jìn)行轉(zhuǎn)義:

^=}]/:<>.'"

總結(jié)

要寫出一個(gè)正確的Perl風(fēng)格正則表達(dá)式字符串,需要進(jìn)行三步:

寫出正確的正則表達(dá)式,注意特殊字符的轉(zhuǎn)義

放入定界符中,并以Perl風(fēng)格的轉(zhuǎn)義規(guī)則進(jìn)行轉(zhuǎn)義

對(duì)上述字符串的內(nèi)容,按照PHP字符串定義的方式進(jìn)行轉(zhuǎn)義

以上是php正則特殊字符轉(zhuǎn)義的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

分享名稱:php正則特殊字符轉(zhuǎn)義的方法-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://muchs.cn/article42/dheghc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、營(yíng)銷型網(wǎng)站建設(shè)商城網(wǎng)站、微信公眾號(hào)、企業(yè)建站全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管