日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
詳解PHP正則表達(dá)式替換實(shí)現(xiàn)

PHP正則表達(dá)式替換實(shí)現(xiàn)是如何的呢?首先向你介紹下PHP preg_replace,PHP preg_replace的使用是我們實(shí)現(xiàn)的方法,那么對(duì)于PHP正則表達(dá)式替換實(shí)現(xiàn)過(guò)程我們從實(shí)例入手。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比中方網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式中方網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋中方地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。

PHP正則表達(dá)式替換的相關(guān)概念:

preg_replace:執(zhí)行正則表達(dá)式的搜索和替換

 
 
 
  1. mixed preg_replace (   
  2. mixed pattern,   
  3. mixed replacement,   
  4. mixed subject [, int limit]) 

preg_replace:允許你替換字符串中匹配到你定義的正則表達(dá)式。一個(gè)簡(jiǎn)單的注釋移除功能:

 
 
 
  1. preg_replace('[(/*)+.+(*/)]', '', $val); 

這段代碼可以移除在 PHP 和 CSS 中使用 /* 注釋 */ 格式的多多行注釋。其中的三個(gè)參數(shù)分別為正則表達(dá)式,要替換成的字符串和要替換的目標(biāo)字符串(這里要做移除功能,所以是個(gè)空白字符串 -> '')。如果你想匹配次級(jí)規(guī)則,可以使用 $0 代表全部匹配,$1、$2 等,以此類(lèi)推代表分別的次級(jí)規(guī)則。

在 subject 中搜索 pattern 模式的匹配項(xiàng)并替換為 replacement。如果指定了 limit,則僅替換 limit 個(gè)匹配,如果省略 limit 或者其值為 -1,則所有的匹配項(xiàng)都會(huì)被替換。

replacement 可以包含 //n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首選使用后者。每個(gè)此種引用將被替換為與第 n 個(gè)被捕獲的括號(hào)內(nèi)的子模式所匹配的文本。n 可以從 0 到 99,其中 //0 或 $0 指的是被整個(gè)模式所匹配的文本。對(duì)左圓括號(hào)從左到右計(jì)數(shù)(從 1 開(kāi)始)以取得子模式的數(shù)目。

對(duì)替換模式在一個(gè)逆向引用后面緊接著一個(gè)數(shù)字時(shí)(即:緊接在一個(gè)匹配的模式后面的數(shù)字),不能使用熟悉的 //1 符號(hào)來(lái)表示逆向引用。舉例說(shuō) //11,將會(huì)使 preg_replace() 搞不清楚是想要一個(gè) //1 的逆向引用后面跟著一個(gè)數(shù)字 1 還是一個(gè) //11 的逆向引用。本例中的解決方法是使用 /${1}1。這會(huì)形成一個(gè)隔離的 $1 逆向引用,而使另一個(gè) 1 只是單純的文字。

PHP正則表達(dá)式替換的相關(guān)實(shí)例:

例子 1. 逆向引用后面緊接著數(shù)字的用法

 
 
 
  1. $string = "April 15, 2003";  
  2. $pattern = "/(/w+) (/d+), (/d+)/i";  
  3. $replacement = "/${1}1,/$3";  
  4. print preg_replace($pattern, $replacement, $string);  
  5.  
  6. /* Output  
  7.    ======  
  8. April1,2003  
  9. */ 
  10. ?>   

如果搜索到匹配項(xiàng),則會(huì)返回被替換后的 subject,否則返回原來(lái)不變的 subject。

preg_replace() 的每個(gè)參數(shù)(除了 limit)都可以是一個(gè)數(shù)組。如果 pattern 和 replacement 都是數(shù)組,將以其鍵名在數(shù)組中出現(xiàn)的順序來(lái)進(jìn)行處理。這不一定和索引的數(shù)字順序相同。如果使用索引來(lái)標(biāo)識(shí)哪個(gè) pattern 將被哪個(gè) replacement 來(lái)替換,應(yīng)該在調(diào)用 preg_replace() 之前用 ksort() 對(duì)數(shù)組進(jìn)行排序。

例子 2. 在 preg_replace() 中使用索引數(shù)組

 
 
 
  1. $string =   
  2. "The quick brown fox jumped over the lazy dog.";  
  3.  
  4. $patterns[0] = "/quick/";  
  5. $patterns[1] = "/brown/";  
  6. $patterns[2] = "/fox/";  
  7.  
  8. $replacements[2] = "bear";  
  9. $replacements[1] = "black";  
  10. $replacements[0] = "slow";  
  11.  
  12. print preg_replace($patterns, $replacements, $string);  
  13.  
  14. /* Output  
  15.    ======  
  16.  
  17. The bear black slow jumped over the lazy dog.  
  18.  
  19. */ 
  20.  
  21. /* By ksorting patterns and replacements,  
  22.    we should get what we wanted. */ 
  23.  
  24. ksort($patterns);  
  25. ksort($replacements);  
  26.  
  27. print preg_replace($patterns, $replacements, $string);  
  28.  
  29. /* Output  
  30.    ======  
  31. The slow black bear jumped over the lazy dog.  
  32. */ 
  33. ?>   

如果 subject 是個(gè)數(shù)組,則會(huì)對(duì) subject 中的每個(gè)項(xiàng)目執(zhí)行搜索和替換,并返回一個(gè)數(shù)組。

如果 pattern 和 replacement 都是數(shù)組,則 preg_replace() 會(huì)依次從中分別取出值來(lái)對(duì) subject 進(jìn)行搜索和替換。如果 replacement 中的值比 pattern 中的少,則用空字符串作為余下的替換值。如果 pattern 是數(shù)組而 replacement 是字符串,則對(duì) pattern 中的每個(gè)值都用此字符串作為替換值。反過(guò)來(lái)則沒(méi)有意義了。

/e 修正符使 preg_replace() 將 replacement 參數(shù)當(dāng)作 PHP 代碼(在適當(dāng)?shù)哪嫦蛞锰鎿Q完之后)。提示:要確保 replacement 構(gòu)成一個(gè)合法的 PHP 代碼字符串,否則 PHP 會(huì)在報(bào)告在包含 preg_replace() 的行中出現(xiàn)語(yǔ)法解析錯(cuò)誤。

例子 3. 替換數(shù)個(gè)值

 
 
 
  1. $patterns = array   
  2. ("/(19|20)(/d{2})-(/d{1,2})-(/d{1,2})/",  
  3.                    "/^/s*{(/w+)}/s*=/");  
  4. $replace = array   
  5. ("http://3///4///1//2", "$//1 =");  
  6. print preg_replace   
  7. ($patterns, $replace, "{startDate} = 1999-5-27");  
  8. ?>  

本例將輸出:

$startDate = 5/27/1999

例子 4. 使用 /e 修正符

 
 
 
  1. preg_replace   
  2. ("/(]*>)/e",  
  3. "'//1'.strtoupper('//2').'//3'",  
  4. $html_body);  
  5. ?>  

這將使輸入字符串中的所有 HTML 標(biāo)記變成大寫(xiě),以上的實(shí)例運(yùn)行支持版本為PHP 3>= 3.0.9, PHP 4。

PHP正則表達(dá)式替換的相關(guān)內(nèi)容就向你介紹到這里,希望那個(gè)對(duì)你了解和掌握PHP正則表達(dá)式替換有所幫助。

【編輯推薦】

  1. 辨析PHP中Ereg正則表達(dá)式
  2. 淺析PHP正則表達(dá)式匹配的實(shí)現(xiàn)
  3. PHP正則表達(dá)式字符集的使用淺析
  4. 淺析PHP正則表達(dá)式匹配的特定實(shí)現(xiàn)
  5. PHP preg_match正則表達(dá)式詳解

網(wǎng)站名稱(chēng):詳解PHP正則表達(dá)式替換實(shí)現(xiàn)
文章路徑:http://www.dlmjj.cn/article/djhpcjc.html