仅在使用 RegExp 抓取数据时显示值

Only showing values when scraping data using RegExp

我正在尝试从以下网站抓取数据:Morningstar (https://www.morningstar.nl/nl/funds/snapshot/snapshot.aspx?id=F00000QIPC)

我想抓取 EUR 20,66,但只显示 '20,66'。我使用以下代码:

function import1() {
  var  html, content = '';
  var response = UrlFetchApp.fetch("https://www.morningstar.nl/nl/funds/snapshot/snapshot.aspx?id=F00000QIPC"); 


  if (response) {
    html = response.getContentText();
    if (html) content = html.match(/<td class="line text">(.*?)<\/td>/)[1];
    Logger.log(content)
  }                                
   return content;

}

显示值为:

EUR 20,66

我尝试添加 \d 以仅显示值:

if (html) content = html.match(/<td class="line text">(\d.*?)<\/td>/)[1];

但它以某种方式显示不同的值: 1,09%

它似乎没有将 20,66 识别为值或其他东西。我尝试了不同的东西,它会显示 EUR20, 但从来没有找到删除 EUR 的东西 (遗憾的是我不能再次复制这个场景)

如果能帮助解决这个问题,我们将不胜感激!

您似乎想匹配 EUR,然后匹配可变数量的空格后的数字。

您可以使用

\s*EUR\s+(\d[\d,]*)

而不是 .*

详情

  • \s* - 0 个或更多空格
  • EUR - 文字文本
  • \s+ - 1+ 个空格
  • (\d[\d,]*) - 捕获组 1:一个数字后跟 0 个或多个逗号或数字。