繁体   English   中英

从 Google App Script 中的 HTML 中提取 URL

[英]Extract URL from HTML in Google App Script

我正在尝试创建一个 function 从 email Z4C4ZDBAD5FCA2E78A1A3DZ 中检索特定的 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)
  }

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

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

让 regx = "\d{4}"

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

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

试试这样:

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

这似乎也有效......

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

或者

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM