Yahoo Pipes正则表达式在这种情况下使用了什么?

时间:2011-11-01 05:13:13

标签: regex pipe yahoo

有任何想法如何改变项目。 Yahoo.pipes中的描述链接

<img src="http://mysite.com/img/pc/image.gif" class="big" style="background-image:url(http://mysite.com/pre_big_crop/pic/pc/gallery/dd/c1/example.jpeg);" alt="" title="">

到这个

<img src="http://mysite.com/pre_big_crop/pic/pc/gallery/dd/c1/example.jpeg"/>

使用正则表达式。

2 个答案:

答案 0 :(得分:0)

我不知道RegEx Pipes的变体使用了什么,因此我将使用.NET变体,您可以调整所需的语法。它应该非常接近。

搜索:

<img[^>]+url\(
([^\)]+)
\)[^>]+>

替换为:

<img src="$1" />

加入线条。第1行在CSS样式属性中查找到url参数的图像标记。第2行匹配背景图像URL并捕获它。第3行与图像标记的其余部分匹配。

答案 1 :(得分:0)

这是一个非常简单的正则表达式,可以使用PERL样式的正则表达式来实现您的目标:

<img.*background-image:url\((.*)\);.*>

基本上,以下是匹配方式的细分:

  1. 首先匹配字符“
  2. 然后匹配0到无限次之间的任何字符。
  3. 然后它匹配字符串“background-image:url(
  4. 然后它匹配0和无限次之间的任何字符,这些字符被捕获到反向引用#1
  5. 然后它匹配字符“);”
  6. 然后它匹配任意字符,介于0和无限次之间。
  7. 然后它匹配“&gt;”字符。
  8. 注意:您应该将与任何字符匹配的项目替换为更具体的项目,具体取决于您使用正则表达式的应用程序。这就是为什么我把它称为“非常简单”。

    然后,它被替换为:

    <img src="$1">
    

    编辑:没有看到richardtallent的答案,非常相似的应用只是一个不同的实现。