【问题标题】:Regex and Yahoo Pipes: How to replace end of url正则表达式和雅虎管道:如何替换 url 的结尾
【发布时间】:2009-08-14 01:03:35
【问题描述】:

这是管道,尽管您可能不需要它来回答问题:http://pipes.yahoo.com/pipes/pipe.info?_id=85a288a1517e615b765df9603fd604bd

我正在尝试修改所有网址:

http://mediadownloads.mlb.com/mlbam/2009/08/12/mlbf_6073553_th_3.jpg with
http://mediadownloads.mlb.com/mlbam/2009/08/12/mlbtv_6073553_1m.mp4

语法应该是这样的:

在 item.mediaUrl 中将 f 替换为 tv,在 item.mediaUrl 中将最后 8 个字符替换为 1m.mp4

mlbf_(\d+)_.* replaced w/ mlbtv_$1_1m.mp4 

虽然我知道我很接近但打破了 rss 提要

知道我需要什么语法吗?

【问题讨论】:

  • 那个正则表达式有效,在 Firebug 中测试。

标签: regex url-rewriting pipe yahoo-pipes


【解决方案1】:

您的正则表达式和替换对我来说看起来不错,假设正则表达式应用于 URL。如果它也被应用于周围的文本,.* 往往会消耗比你想要的更多的东西。看看如果你把正则表达式改成这样会发生什么:

mlbf_(\d+)_[\w.]+

【讨论】:

  • 正则表达式有效,但你是对的,他可能会替换 URL 的末尾。
【解决方案2】:

我不知道这个 yahoo 管道是如何工作的,但是这个正则表达式应该按照这个 site 来做:

正则表达式:

.*?/([0-9]*)/([0-9]*)/([0-9]*)/mlbf_([0-9]*)_.*

替换:

http://mediadownloads.mlb.com/mlbam/$1/$2/$3/mlbtv_$4_1m.mp4

【讨论】:

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