亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

preg_replace()參數均為數組多次替換的實例理解

2024-09-04 11:46:26
字體:
來源:轉載
供稿:網友

本文章給各位同學介紹關于preg_replace()參數均為數組多次替換的一些自我理解與替換次數的解決辦法,有需要了解的同學可參考.

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

pattern:要搜索的模式,可以使一個字符串或字符串數組.

可以使用一些PCRE修飾符,包括'e'(PREG_REPLACE_EVAL),可以為這個函數指定.

replacement

用于替換的字符串或字符串數組,如果這個參數是一個字符串,并且pattern 是一個數組,那么所有的模式都使用這個字符串進行替換,如果pattern和replacement 都是數組, 每個pattern使用replacement中對應的元素進行替換,如果replacement中的元素比pattern中的少,多出來的pattern使用空字符串進行替換.

replacement中可以包含后向引用n 或(php 4.0.4以上可用)$n,語法上首選后者,每個 這樣的引用將被匹配到的第n個捕獲子組捕獲到的文本替換. n 可以是0-99,和$0代表完整的模式匹配文本,捕獲子組的序號計數方式為:代表捕獲子組的左括號從左到右,從1開始數,如果要在replacement 中使用反斜線,必須使用4個("/", 譯注:因為這首先是php的字符串,經過轉義后,是兩個,再經過 正則表達式引擎后才被認為是一個原文反斜線).

當在替換模式下工作并且后向引用后面緊跟著需要是另外一個數字(比如:在一個匹配模式后緊接著增加一個原文數字),不能使用1這樣的語法來描述后向引用,比如,11將會使preg_replace() 不能理解你希望的是一個1后向引用緊跟一個原文1,還是 一個11后向引用后面不跟任何東西,這種情況下解決方案是使用${1}1,這創建了一個獨立的$1后向引用,一個獨立的原文1.

當使用e修飾符時,這個函數會轉義一些字符(即:', ", 和NULL)然后進行后向引用替換. 當這些完成后請確保后向引用解析完后沒有單引號或 雙引號引起的語法錯誤(比如: 'strlen('$1')+strlen("$2")'). 確保符合PHP的 字符串語法, 并且符合eval語法. 因為在完成替換后, 引擎會將結果字符串作為php代碼使用eval方式進行評估并將返回值作為最終參與替換的字符串.

subject

要進行搜索和替換的字符串或字符串數組.如果subject是一個數組,搜索和替換回在subject 的每一個元素上進行,并且返回值也會是一個數組.

limit

每個模式在每個subject上進行替換的最大次數. 默認是 -1(無限).

count

如果指定,將會被填充為完成的替換次數.是— 執行一個正則表達式的搜索和替換的用函數,平時我們用它時多是一次替換結束,今天又看php手冊發現了一個較為難理解(自認為)的例子分享給大家,代碼如下:

  1. <?php 
  2.  $subject = array('1''a''2''b''3''A''B''4');  
  3.  $pattern = array('/d/''/[a-z]/''/[1a]/');  
  4.  $replace = array('A:$0''B:$0''C:$0');  
  5.  //開源代碼Vevb.com 
  6.  echo "preg_replace returnsn<pre/>"
  7.  print_r(preg_replace($pattern$replace$subject));  
  8.  ?> 

咋一看,我就看暈了.

一般 若匹配模式和替換內容這兩項都是數組的話它們應該相對應,如果replacement中的元素比pattern中的少,多出來的pattern使用空字符串進行替換.

$pattern就像個掃描器,掃到匹配的就用于之對應的$replace替換.

對于上例替換過程如下

/d/掃描$subject里的1,匹配了,匹配內容為$0(也就是1)就把1替換為A:1,然后用/[a-z]/掃描A:1不匹配,就不替換,繼續用[1a]掃描A:1,匹配內容為1(也就是$0),就把A:1中1換為C:1.

第一項最終被替換為A:C:1

簡化過程:

  1. 1->A:1->A:C:1 
  2. a->B:a->B:C:a 
  3. 2->A:2 
  4. b->B:b 
  5. A(沒有符合匹配的就不替換了) 
  6. B(同上) 
  7. 4->A:4 

拿$pattern里的每一個模式依次去匹配$subject里的每一個元素,匹配到了就用與$pattern對應的那個$replace對換,如上例,可能不止一次替換.

控制preg_replace替換次數,代碼如下:

  1. $v = array('vv','bb'); 
  2. $str = "vv,cc,abcde,www.49028c.com,vv"
  3. $str=preg_replace("/$v[0]/","<a href=".$v[1]." target=_blank >".$v[0]."</a>",$str,1); 
  4. echo $str
  5. //bb,cc,abcde,www.49028c.com,vv 
  6. $str=preg_replace("/$v[0]/","<a href=".$v[1]." target=_blank >".$v[0]."</a>",$str,2); 
  7. //bb,cc,abcde,www.49028c.com,bb

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人精品一区二区三区| 欧美日韩国产精品一区| 成人午夜在线影院| 欧美理论电影在线播放| 欧美日韩国产一区二区| 亚洲精品一区二区三区不| 国产精品久久国产精品99gif| 欧美猛少妇色xxxxx| 欧美激情中文字幕乱码免费| 91亚洲国产成人精品性色| 这里只有精品视频| 久久久日本电影| 亚洲成年网站在线观看| 国产午夜精品一区理论片飘花| 少妇av一区二区三区| 乱亲女秽乱长久久久| 在线视频一区二区| 欧美日韩亚洲精品一区二区三区| 一区二区在线免费视频| 最新日韩中文字幕| 91在线无精精品一区二区| 亚洲老头老太hd| 伊人一区二区三区久久精品| 欧美在线性爱视频| 成人夜晚看av| 57pao精品| 7m第一福利500精品视频| 欧美日韩视频在线| 亚洲最新在线视频| 中文字幕在线看视频国产欧美| 亚洲人a成www在线影院| 日韩不卡在线观看| www.日韩视频| 日韩av手机在线看| 亚洲剧情一区二区| 成人h片在线播放免费网站| 国产精品国语对白| 精品久久香蕉国产线看观看gif| 精品人伦一区二区三区蜜桃网站| 成人激情视频免费在线| 久久伊人精品视频| 91沈先生在线观看| 久久久久久久网站| 日韩av在线不卡| 国产精品爱久久久久久久| 亚洲第一精品夜夜躁人人爽| 国产suv精品一区二区三区88区| 欧美一区二区视频97| 国产97人人超碰caoprom| 欧美一区二区三区艳史| 亚洲va电影大全| 国产精品色午夜在线观看| 国产日韩av高清| 日韩av123| 超碰精品一区二区三区乱码| 欧美精品videossex性护士| 成人精品一区二区三区电影黑人| 欧美野外猛男的大粗鳮| 亚洲精品一区二区三区婷婷月| 国产亚洲视频在线观看| 日韩美女视频在线观看| 国产精品一区专区欧美日韩| 国产精品精品国产| 欧美日韩一区二区免费在线观看| www.国产精品一二区| 久久久噜噜噜久久| 国产精品美女久久久免费| 国产精品九九久久久久久久| 欧美高清一级大片| 91精品视频观看| 国产亚洲精品久久久久久牛牛| 日韩在线观看精品| 日韩精品视频中文在线观看| 欧美性猛交xxxx乱大交3| 国产精品国产自产拍高清av水多| 国产精品视频99| 欧美性生活大片免费观看网址| 正在播放欧美视频| 精品日韩美女的视频高清| 国产精品久久久久久av福利| 91色视频在线导航| 日韩精品视频在线播放| 亚洲国产私拍精品国模在线观看| 欧美一级淫片丝袜脚交| 成人美女免费网站视频| 日韩av三级在线观看| 国产精品视频区| 亚洲一区二区中文字幕| 91精品国产91久久久久久久久| 一本色道久久综合狠狠躁篇的优点| 国产精品自产拍在线观| 日韩中文字幕在线看| 精品动漫一区二区三区| 欧美激情伊人电影| 国产91ⅴ在线精品免费观看| 欧美日韩亚洲91| 粗暴蹂躏中文一区二区三区| 国产成人av在线播放| 久久久人成影片一区二区三区观看| 久久艹在线视频| 亚洲直播在线一区| 欧美午夜性色大片在线观看| 国产美女91呻吟求| 久久精品国产免费观看| 欧美午夜宅男影院在线观看| 欧美激情视频免费观看| 蜜月aⅴ免费一区二区三区| 91美女片黄在线观看游戏| 一本久久综合亚洲鲁鲁| 菠萝蜜影院一区二区免费| 国产精品户外野外| 日韩av综合中文字幕| 久久人人看视频| 亚洲精品久久久久国产| 国产精品久久久久久久9999| 5252色成人免费视频| 日韩国产精品一区| 久久久国产在线视频| 久久久精品在线观看| 亚洲大胆人体视频| 国产日韩综合一区二区性色av| 国内外成人免费激情在线视频| 日韩av大片免费看| 欧美一级在线播放| 一区二区在线免费视频| 国产一区二区三区在线| 亚洲天堂男人的天堂| 亚洲国产欧美久久| 中文字幕精品在线视频| 国产一区二区免费| 大胆人体色综合| 久久韩国免费视频| 欧美成人高清视频| 国产成人av在线播放| 亚洲精选在线观看| 羞羞色国产精品| 精品久久久久久久久久| 日韩美女视频中文字幕| 国产精品美女久久| 欧美视频裸体精品| 亚洲在线观看视频网站| 亚洲人成免费电影| 欧美性猛交xxxx免费看漫画| 青青草精品毛片| 亚洲美女av网站| 亚洲欧洲第一视频| 亚洲三级 欧美三级| 国产亚洲精品久久久| 国产成人精品av| 亚洲欧美国产精品久久久久久久| 国产精品美女主播在线观看纯欲| 成人伊人精品色xxxx视频| 成人乱人伦精品视频在线观看| 亚洲美女免费精品视频在线观看| 国产精品久久电影观看| 欧美日韩在线影院| 日韩欧美a级成人黄色| 久久成人精品电影| 亚洲国产精品一区二区三区| 日韩黄色高清视频| 欧美日韩在线另类| 日韩在线视频网| 国产精品18久久久久久首页狼| 影音先锋欧美在线资源|