【问题标题】:Extracting decimal value from a number in imacros从imacros中的数字中提取十进制值
【发布时间】:2017-07-07 12:56:52
【问题描述】:

我正在从this 网站提取数据

并使用此代码从文本中获取带小数的数字,但它只给出整数而不是小数

TAG POS=1 TYPE=span ATTR=CLASS:proPriceField&&TXT:* EXTRACT=TXT
SET ProPrice EVAL("'{{!EXTRACT}}'.match(/[0-9,]+/);")

这给出了14 而不是14.1

任何建议应该对代码进行哪些更改,以便获得正确的输出。 任何帮助将非常感激。 谢谢

【问题讨论】:

  • 您只需要小数吗?好吧,顺便说一句,您使用逗号分隔正则表达式中的数字和测试中的点...
  • 不仅是十进制,还有十进制......现在我得到的输出是假设“14.2 Lacs”,我得到 14,但我想提取 14.2

标签: javascript regex imacros


【解决方案1】:

您要查找的正则表达式是

\d+(?:(?:\.|,)\d+|)

看看这个 online test 在 Regex101 上

您可以简单地使用\d 来简化您的正则表达式,而不是使用[0-9]

  • \d+ 匹配一个或多个数字
  • (?: 非捕获组的开始 (2x)
  • \. 因为点是正则表达式中的选择器,所以必须转义。
  • | OR 运算符(匹配或文字点,或逗号)
  • , 文字(逗号)
  • )抓包结束
  • \d+ 匹配一个或多个出现的数字(小数部分)
  • | OR 运算符(匹配或小数部分,或数字本身(无))
  • )抓包结束

【讨论】:

    猜你喜欢
    • 2014-02-18
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多