【问题标题】:Regex help (for yahoo pipes)正则表达式帮助(雅虎管道)
【发布时间】:2013-07-21 19:10:26
【问题描述】:

我有以下字符串:

 <span class="pos">$2.472,38</span>

我想得到2472,38(最后是2472.38

我一直在尝试正则表达式,发现[\d,.]+ 似乎可以工作,但是由于雅虎管道的正则表达式模块的工作方式(将...替换为...,我必须首先选择所有字符串

所以我在想

replace .+([\d,.]+).+ with $1

但这只是给我8(最后一位数字)的结果。所以我想我定义捕获组的方式不对。任何线索?提前致谢

你可以在这里找到管道http://pipes.yahoo.com/pipes/pipe.info?_id=06780ca250e5b107b7c1ef52455996ff

【问题讨论】:

    标签: regex yahoo-pipes


    【解决方案1】:

    您的第一个子表达式 .+ 是“贪婪的”(即尝试匹配所有可能的内容,同时仍然允许整个表达式成功),因此它匹配所有内容直到最后一个数字。您需要根据您对可以在数字之前的内容的了解,在数字开始之前以某种方式“停止”。如果您知道数字前面有一个美元符号,而span 元素中没有美元/数字组合,您可以简单地在.+ 之后添加一个\$,如.+\$([\d,.]+).+

    【讨论】:

    • 嗨,彼得,如果我在 $ 符号前添加一个“\”,您的解决方案就有效(我猜 $ 需要转义,我错了吗?)
    • 是的,很抱歉。 $ 字符匹配“行尾”,确实在用作文字时需要转义。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多