【问题标题】:Regex in Yahoo Pipes: append only if match foundYahoo Pipes中的正则表达式:仅在找到匹配项时追加
【发布时间】:2014-07-14 21:00:17
【问题描述】:

在 Yahoo Pipes 中,我尝试将内容附加到现有字符串,但前提是在该字符串中找到匹配项。

具体来说,我想将“#Fracking”附加到行尾,但前提是在 item.title 中找到“Hydraulic Fracturing”。

我的正则表达式如下(不起作用):将(?(Hydraulic Fracturing)(.*)) 替换为$1 $#Fracking

我做错了什么? Yahoo Pipes 不支持条件正则表达式吗?我找不到答案。

感谢您的帮助!

【问题讨论】:

    标签: regex yahoo-pipes


    【解决方案1】:

    如果我理解正确,你可以这样做:

    • 模式:.*Hydraulic Fracturing.*
    • 替换:$0#Fracking

    似乎在 Yahoo Pipes 中匹配的字符串可以用 $0 反向引用。

    这里,前面和后面的.* 使整个字符串匹配,如果它包含“Hydraulic Fracturing”,然后用它自己替换整个东西,加上“#Fracking”。如果字符串不包含“Hydraulic Fracturing”,则不会有替换。

    【讨论】:

    • Janos,虽然这可行,但字符串“#Fracking”被附加到匹配字符串的最后,中间没有空格。我尝试插入一个空格,如下所示:$0 #Fracking,但它不起作用。我也试过$0\s#Fracking,但也没有用。如何插入空格?
    • 这很奇怪。您应该可以在那里插入一个简单的空格。它对我来说很好用,我看不出它为什么不能...给我看看你的烟斗!
    • 我让它工作了,你是对的,一个简单的空间工作。让我震惊的是管道没有立即刷新。它在几分钟内按预期工作。雅虎管道必须使用缓存或节流或其他东西。无论如何,再次感谢!
    • 是的,缓存很烦人。查看管道编辑器中的调试器。那总是正确的。刷新管道输出可能需要几分钟时间。
    • 新的皱纹:如果我想添加一个基于两种模式的标签,我该如何组合它们?示例:仅当 a) 现有内容包含“原油”且 b) 不包含“油”时,我才想添加“#Oil”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2015-04-29
    • 2013-12-01
    相关资源
    最近更新 更多