用于替换样式和脚本标记块</del>中的“<del>”标记的正则表达式

时间:2013-10-03 08:12:11

标签: regex

我希望您提供帮助,从<del><script>代码块中删除<style>代码。

Input:

<style type="text/css">
   <del>p</del>
    {
    color:red;
     }
</style>

Output: 

<style type="text/css">
      p
      {
      color:red;
      }
</style>

同样适用于脚本标记。基本上我想从脚本标记和样式标记块中删除<del>标记。

2 个答案:

答案 0 :(得分:0)

使用sed命令:

sed 's/<del>\(.*\)</del>/\1/g' yourFile.html

答案 1 :(得分:0)

在PHP中:

$text = '<style type="text/css"> <del>p</del> { color:red; } </style>';
$pattern = '/<\/?del>/g';
$replacement = '';
echo preg_replace($pattern, $replacement, $text);

修改

要专门定位样式标记内的出现位置:

$text = '<style type="text/css"> <del>p</del> { color:red; } </style>';
$pattern = '/(<(?:style|script).*)(<del>)(.*)(<\/del>)(.*<\/(?:style|script)>)/g'
$replacement = '$1$3$5';
preg_replace($pattern, $replacement, $text);

如果没有那么多通配符,可能有一种更简洁的方法,但这可以完成工作。我没有在PHP中测试它,但它在JavaScript中运行良好。你可以为样式标签做同样的事情