+ -
当前位置:首页 → 问答吧 → 正则替换.

正则替换.

时间:2011-08-26

来源:互联网


  1. $arr = array("A","B","C");
  2. $str = "ooooo{ttt2}oooo";
  3. $str = preg_replace("{{ttt(\d+)}}",$arr["\\1"],$str);   //这个区域写法不对
  4. echo $str;
复制代码

如果和这个$arr 如何加到替换里?

目的让字符串 ttt2 对应 $arr2

作者: badwolf   发布时间: 2011-08-26

  1. $arr = array("A","B","C");
  2.     $str = "ooooo{ttt2}oooo";
  3.     $match = null;
  4.     $temp = preg_match("/{ttt(\d+)}/", $str, $match);
  5.     $str = preg_replace("{{ttt(\d+)}}",$arr[$match[1]],$str);   
  6.     echo $str;
复制代码
楼主要的是不是这个意思- -?

作者: demeter106   发布时间: 2011-08-26

在preg_replace的过程中,会先执行$arr["\\1"],这个值索引不到,返回空。所以你就无法匹配到你想要的。
应该换种方式匹配,比如把匹配到的那个2保存在变量中,然后再索引到$arr的值再替换回去。

作者: faiinlove   发布时间: 2011-08-26