【问题标题】:GAS Regex, Can someone turn make this regex to work in App Script?GAS 正则表达式,有人可以让这个正则表达式在 App Script 中工作吗?
【发布时间】:2021-12-18 00:36:59
【问题描述】:

从此page,(What is a good regular expression to match a URL?)

我们可以使用正则表达式来匹配很多 URL,(它在正则表达式网站中用作测试。不知何故,它在 GAS(Google App Script)中不起作用,因为它被用作

   var rx = 'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)';

     regex= string.match(rx)
     Logger.log(regex)

它总是返回 null

Info    null

但是,此正则表达式在此页面 https://regexr.com 上有效。我们如何让它与 GAS 一起使用?

我们如何在 GAS 中匹配这样的东西?

https://notifications.example.com/f/g/FB-FnExAZJUxP7fPZCGR4kW9FodXg0X1GBR4wZ0GUaAV0DgL3xUT1K2gBsxnQVcGbzPcydEWIwOgDQ-GiVzMERg5FPGm1Ek6YWnAyElHsz5uqJe5wYYtgQbGuQmW5WxF6E8bu9CfRtBEJ7AWDxWSwfOu__Ahwrwsnw

【问题讨论】:

  • 或许应该是var rx = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/;
  • 在此页面上查看答案:stackoverflow.com/questions/3809401/…
  • 并非如此。它只返回两个 URL。虽然它应该匹配很多。你能帮我匹配这个网址吗? notifications.example.com/f/g/…
  • 也许你需要/g中的g标志
  • 阅读我给你的链接。我怀疑他们比我更了解它。

标签: regex google-apps-script


【解决方案1】:

您的代码不起作用,因为它没有使用正则表达式。它只是将一个文本字符串与另一个文本字符串进行匹配。

要使其正常工作,请使用regex literal,如下所示:

const rx = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/i;

如果您出于某种原因需要使用文本字符串文字,请使用\\ 代替\ 对文本字符串进行双重转义,并应用RegExp() 构造函数对其进行正则表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2015-03-21
    相关资源
    最近更新 更多