【问题标题】:Using Regex in Yahoo pipes to "clean" RSS feeds在 Yahoo 管道中使用 Regex 来“清理”RSS 提要
【发布时间】:2010-08-03 23:27:03
【问题描述】:

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

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

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

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

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

由于新帐户限制,代码示例可以在这里找到: Using Regex in Yahoo pipes

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

【问题讨论】:

    标签: regex rss feed yahoo-pipes


    【解决方案1】:

    正则表达式语法当然不是通用的。见我的regex flavor comparison。不幸的是,Yahoo Pipes 文档没有说明他们使用什么正则表达式风格。这些示例看起来像 Perl 风格的正则表达式,所以我将使用它。

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

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

    并替换为:

    $1
    

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

    要删除任何a 标记作为其内容中的第一件事的标记,请搜索:

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

    并替换为:

    $1
    

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

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

    【讨论】:

      猜你喜欢
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多