首页 > 解决方案 > 我该怎么做preg_replace?

问题描述

我正在尝试从站点获取数据,但存在一些问题。我想更改以开头<div class="phraserec"和结尾的表达式,</div></div> 我该怎么做?

$source = "<div class="gwblock" id="1936036"><div class="phraserec"bla bla...</div></div>"
$output = preg_replace('/'. preg_quote('<div class="phraserec" '.'(.*?)'.'</div></div>','/') .'/', '</div>' , $ll);

我想要输出;

<div class="gwblock" id="1936036"><div class="phraserec"bla bla...</div>

标签: phppreg-replace

解决方案


没有理由打电话preg_quote(),它防止(.*?)被视为一种模式。而不是把捕获组放在周围.*?,你可以把它放在第二个之前的所有东西上</div>

$output = preg_replace('#(<div class="phraserec".*?</div>)</div>#', '$1', $source);

preg_quote()当您想将动态输入转换为正则表达式中的文字值时需要。


推荐阅读