使用PHP的特定于条带的跨距标记

使用PHP的特定于条带的跨距标记,php,Php,可能重复: 我有一个字符串,它包含两种类型的span标记。一种类型的id以关键字“垃圾邮件”开头。但是,另一种类型有一些随机ID。我想做的是使用preg_replace删除“junk_”span标记及其内容。我仍然想保留其他跨度。这是我的绳子 <span id="bla">This is a test</span>. <span id="junk_74">Please</span> remove <span id="junk_75">

可能重复:

我有一个字符串,它包含两种类型的span标记。一种类型的id以关键字“垃圾邮件”开头。但是,另一种类型有一些随机ID。我想做的是使用preg_replace删除“junk_”span标记及其内容。我仍然想保留其他跨度。这是我的绳子

<span id="bla">This is a test</span>. 
<span id="junk_74">Please</span> remove <span id="junk_75">all</span> junk spans.
这是一个测试。
请清除所有垃圾。
我想要的输出应该如下所示:

<span id="bla">This is a test</span>. remove junk spans.
这是一个测试。移除垃圾跨距。
任何帮助都将不胜感激

$sHtml=preg\u replace('/]+id=“junk”[^>]*”[^>]*>(.*?/s','','$sHtml);
$sHtml = preg_replace('/<span[^>]+id="junk_[^"]*"[^>]*>(.*?)<\/span>/s', '', $sHtml);

也可以看到这一点。

id属性不允许全部为数字,顺便说一句。Quit不起作用。垃圾标签除了id之外还有其他属性吗?它可能包含任意数量的其他属性。在我的it中,它起作用。你能给我看不匹配的字符串的内容吗?仍然不起作用。请查看我的内容,因为你e将我的答案标记为正确答案,我怀疑您现在已经解决了问题。否则,就是您示例的正确版本。结果字符串不再是id为
垃圾的
span
。非常感谢您的努力。是的,这是正确答案。您救了我一天。非常感谢。