Google App Script 中的正则表达式问题在结果后得到大量垃圾

问题描述

使用此 Google App 脚本从 coinmarketcap 获取加密货币价格: (此脚本归功于 Josh Bradley 通过此 stackoverflow 主题To exceed the ImportXML limit on Google Spreadsheet

function importRegex(url,regexInput) {
  var output = '';
  var fetchedUrl = UrlFetchApp.fetch(url,{muteHttpExceptions: true});
  if (fetchedUrl) {
    var html = fetchedUrl.getContentText();
    if (html.length && regexInput.length) {
      output = html.match(new RegExp(regexInput,'i'))[1];
    }
  }
  // Grace period to not overload
  Utilities.sleep(1000);
  return output;
}

在我想粘贴价格的单元格中,我使用:

=importRegex("https://coinmarketcap.com/currencies/cosmos","<div class=.priceValue___11gHJ.>(.*)<\/div>")

但最终我得到的不是价格,而是价格加上大量垃圾

$14.18</div><span ... (lots of stuff after) 

为什么正则表达式不起作用?谢谢!

解决方法

您应该将 .* 替换为 \$([\\d.]{1,})