PHP正则表达式:替换两个特殊字符之间的子字符串

时间:2013-06-03 12:49:12

标签: php regex

更新问题:

$li_text = $li->plaintext;
echo '<br>'.$li_text;
echo '<br>'.$li_text = preg_replace('/\:(.*?)\>/',':', $li_text);

$li获得价值“资格:学校和毕业&gt; BE / B.Tech(工程)”//by using simple html DOM parsing from other websites

我得到的输出是

Qualification : School & Graduation > BE / B.Tech ( Engineering )
Qualification : School & Graduation > BE / B.Tech ( Engineering ) 

如果我指定$li_text = "Qualification : School & Graduation > BE / B.Tech ( Engineering )",那么REGEX工作正常。

2 个答案:

答案 0 :(得分:2)

您的代码运行正常。请注意preg_replace不会更改主题(即$str),但会返回结果。

  如果 subject 参数是一个数组,

preg_replace()会返回一个数组,   否则就是一个字符串。

     

如果找到匹配项,则会返回新的 主题 ,否则   如果发生错误, 主题 将保持不变, NULL

所以:

preg_replace('/:(.*?)\>/',':', $str);

echo $str;

错误。但是:

$str = preg_replace('/:(.*?)\>/',':', $str);

echo $str;

正在工作

答案 1 :(得分:1)

试试这个:

preg_replace('/(?<=:)(.*?)>/', '', $str);