需要一些帮助才能创建一个从rss Feed中删除某些元素的Yahoo Pipe。 clerify:我会在Yahoo Pipes上使用正则表达式代码。我认为正则表达式语法是通用的吗?
我已经将问题解决了一些子问题:
删除/删除特定html标记(有自己的类)的正则表达式是什么? 含量
如何从链接图像中删除链接但保留图像标记?
如何将顺序类添加到Feed项中找到的所有链接? 如果单个Feed项目中有5个链接,则会为它们指定类:link001,link002,link003,link004,link005 ...
由于新的帐户限制,代码示例可在此处找到: Using Regex in Yahoo pipes
正则表达式并不完全是我的强项...所以任何帮助都将不胜感激! 非常感谢!
答案 0 :(得分:0)
正则表达式语法肯定不是通用的。查看我的regex flavor comparison。不幸的是,雅虎管道文档没有说明他们使用什么样的正则表达式。这些示例看起来像Perl风格的正则表达式,所以我将使用它。
要删除具有特定类属性(例如span
)的特定HTML标记(例如someclass
),请搜索:
(?si)<span[^<>]*class=["']?someclass["']?[^<>]*>(.*?)</span>
并替换为:
$1
如果您要删除的span
标记包含嵌套的span
标记,则上述正则表达式将失败。
要删除任何a
标记作为其内容中的第一个标记,请搜索:
img
并替换为:
(?si)<a[^<>]*>(<img.*?)</a>
您的问题中的第三项无法单独使用正则表达式。您需要一个设施来增加替换中的数量。我不知道Yahoo Pipes是否支持类似的东西。你真的不需要正则表达式。只需搜索文字$1
并替换为<a
当然,所有关于使用正则表达式操纵HTML / XML的注意事项都适用。正则表达式适用于您提供的示例,但它们可能无法按预期在每个可能的HTML上运行。