【问题标题】:Extract URL from HTML in Google App Script从 Google App Script 中的 HTML 中提取 URL
【发布时间】:2020-04-28 17:35:17
【问题描述】:

我正在尝试创建一个从电子邮件 HTML 正文中检索特定 URL 的函数。

我尝试使用正则表达式检索的 URL 具有这种形式

https://dashboard.stripe.com/emails/receipts/invrc_1GYYpBFlgHQ8OfGyspnJivUe/pdf

所以它有这个模式固定https://dashboard.stripe.com/emails/receipts/invrc_ + 24 个字符的字母数字字符串 + 固定 /pdf

我试过这个正则表达式,但它总是打印我“null”


var threads = GmailApp.search('subject:"Your receipt from ‪Weglot‬"',0,1)[0];
var messages = threads.getMessages();
var body = messages[0].getBody();

      var url = new RegExp(/https:\/\/dashboard.stripe.com\/emails\/receipts\/invrc_/+/[a-zA-Z0-9]+/+/\/pdf/)

      var data = body.match(url)
      Logger.log(data)
  }

有人想办法解决这个正则表达式吗?

【问题讨论】:

    标签: javascript regex google-apps-script


    【解决方案1】:

    你不需要构造函数来创建这个正则表达式,构造函数的想法是当你想将字符串转换为正则表达式时,例如:

    让 regx = "\d{4}"

    regx = 新的正则表达式(regx)

    但是你这样做的方式是传递一个正则表达式对象而不是正则表达式字符串。

    试试这个方法:

    让 url = /https://dashboard.stripe.com/emails/receipts/invrc.+?/pdf/

    【讨论】:

      【解决方案2】:

      这似乎也有效...

      var url = new RegExp(/https://dashboard.stripe.com/emails/receipts/invrc_[a-z,A-Z,0-9]*/pdf/);

      var url = new RegExp(/https://dashboard.stripe.com/emails/receipts/invrc_[a-z,A-Z,0-9]{24}/pdf/);

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-08
        • 2015-12-19
        • 2022-01-06
        • 1970-01-01
        相关资源
        最近更新 更多