使用SED删除数据库中html中的特定锚标签

时间:2013-03-02 09:15:06

标签: regex sed

我有一张桌子,其中包含数百个带截图的指南。屏幕截图图像被锚标签包围,因为它们之前可以点击,但现在我需要删除锚标签。要删除的所有锚标记都有href=#screenshot后跟一个数字,如下例所示。我的计划是使用mysqldump转储表,然后使用 sed 查找并替换正确的字符串。

<p>Choose <a href="/components">components</a> to install and click next.</p>
<div class="screen">
<a href="#screenshot3"><img src="/images/screens/install/step3.jpg" alt="Step 3"></a>
</div>

应该是

<p>Choose <a href="/components">components</a> to install and click next.</p>
<div class="screen">
<img src="/images/screens/install/step3.jpg" alt="Step 3">
</div>

我可以使用<a\shref\=\"#screenshot\d+\"\>匹配第一个标记,但我还需要匹配其第二个结束标记,以便在不删除其他锚标记的情况下删除它们。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以尝试替换

<a\shref\=\"#screenshot\d+\"\>(.*)<\/a>

\1

括号将捕获它们之间找到的所有内容,以便您可以使用\1\2恢复它...

请记住,虽然在尝试修改HTML时,正则表达式不是正确的武器。阅读this(及其周围的评论)以获得解释。