0

在创建从 rss 提要中删除某些元素的 Yahoo Pipe 时需要一些帮助。澄清:我会在 Yahoo Pipes 上使用正则表达式代码。我认为正则表达式语法是通用的?

我已将问题分解为一些子问题:

  1. 删除/剥离特定 html 标签(有自己的类)的正则表达式是什么?内容

  2. 如何从链接图像中删除链接但保留图像标记?

  3. 如何将顺序类添加到提要项中的所有链接?如果单个提要项中有 5 个链接,它们将被赋予类:link001、link002、link003、link004、link005...

由于新的帐户限制,可以在这里找到代码示例: 在 Yahoo 管道中使用正则表达式

正则表达式不完全是我的强项......所以任何帮助将不胜感激!非常感谢!

4

1 回答 1

0

正则表达式语法当然不是通用的。请参阅我的正则表达式风味比较。不幸的是,Yahoo Pipes 文档没有说明他们使用什么正则表达式风格。这些示例看起来像 Perl 风格的正则表达式,所以这就是我将使用的。

要删除具有span特定类属性(例如)的特定 HTML 标记(例如someclass),请搜索:

(?si)<span[^<>]*class=["']?someclass["']?[^<>]*>(.*?)</span>

并替换为:

$1

span如果您尝试删除的标签包含嵌套标签,上述正则表达式将失败span

要删除任何在其内容中首先a包含标签的标签,请搜索:img

(?si)<a[^<>]*>(<img.*?)</a>

并替换为:

$1

您问题中的第三项不能仅使用正则表达式来完成。您需要一个工具来增加替换中的数字。我不知道 Yahoo Pipes 是否支持类似的东西。你真的不需要正则表达式。只需搜索文本<a并替换为<a class="link001"

当然,所有关于使用正则表达式操作 HTML/XML 的警告都适用。正则表达式适用于您提供的示例,但它们可能无法按预期适用于所有可能的 HTML。

于 2010-08-04T02:59:39.157 回答