假设我有一个很长的字符串,我想删除一个"< a>"标签,这是我已经尝试过的:
// kill rangeselector object (this is not cleared by dygraph)
delete dchart.rangeSelector_;
// update
dchart.updateOptions({
// showRangeSelector: FULLVERSION,
// or whatever settings you want
});
// resize so redraw is forced
// instead of #chart put #whatever-your-div-id-is
var cur_width = $("#chart").width();
var cur_height = $("#chart").height();
// instead of dchart put the variable name of your chart
// in a lot of the examples this is g
dchart.resize(10, 10);
dchart.resize(cur_width, cur_height);
正如您在此行中所看到的,它会从第一个"<<<一个"到满足条件的那个。
如何重写它只搜索一个开头并关闭一个标签?
换句话说,为了使自己清楚:我有一个很长的文本可能会或可能没有很多"<一个"标签。我需要删除任何包含特定字符串的内容。此字符串是动态创建的。使用上面的代码,我告诉程序搜索"<一个"并删除所有内容,直到找到$ aString,然后到结束" a>"标签不是我想要的。我希望它只删除包含$ aString的标记。
UPDATE :一个简单的str_replace不会做这个伎俩,因为它失败了" [\ s \ S] ?"实现这一点,为什么我把" [\ s \ S] ?"那里。正如我所说,标签内的文本包含$ aString,我的意思是:它可能是:
$text= preg_replace('~<a[\s\S]*?'.$aString.'[\s\S]*?/a>~','',$text);
或
<a class='blah' style='blah' $aString title='blah'>blahblahblah</a>
或
<a class='notblah' style='notblah' $aString>blah</a>