我有时间替换两个标签之间的数据。我无法弄清楚匹配这种模式的正则表达式。 My tags are simply <!-- Model # Start --> and <!-- Model # End -->
代码:
$products[''.$row[0].''][2] = preg_replace("/(<!-- Model # Start -->).*(<!-- Model # End -->)/i", "$1$2", $products[''.$row[0].''][2]);
echo $products[''.$row[0].''][2] . "\n";
数据:$ products [''。$ row [0]。''] [2]
Economical. 7 mils thick, tough & stretchy. Each roll cellophane wrapped. UL listed.
<!-- Model # Start -->
<p style='text-align: right;'>16736</p>
<!-- Model # End -->
答案 0 :(得分:1)
尝试:
/(.*<!-- Model # Start -->).*(<!-- Model # End -->.*)/im
请注意多行匹配的 m 标志。
如果你有多次出现的标签,你可以使用一个不情愿的量词来获得第一场比赛,或者使用环视。
http://rubular.com/有助于测试。
答案 1 :(得分:0)
我会这样匹配......
$match = 'Model\s#\s';
preg_replace('/<!--\s?' . $match . 'Start\s?(.*?)\s?' . $match . 'End\s?-->/i', '<span>$1</span>', $row);