【发布时间】:2021-05-08 00:18:32
【问题描述】:
我要疯了。
我需要做以下事情:
给定一个字符串"sometext<tag>",我需要从中提取"sometext"。现在我有两个解决方案可以在 Firefox 控制台中运行,但不能在 Google Apps 脚本中运行(可以使用 exec 或 match):
(A) string.match(/(^.*?)<[^<]*?>/)
(B) string.match(/^.*?(?=<[^<]*?>)/)
现在我阅读了很多关于类似事情的 stackoverflow 答案,其中一些人说不支持前瞻。美好的。这就是我想出捕获组一的原因。
在控制台中就像一个魅力,但在 GAS 中执行它并返回 null。什么鬼??
为什么会这样? GAS 也不支持捕获组吗?关于如何实现我的目标的任何想法?
感谢您的宝贵时间!
【问题讨论】:
-
当然有很多解决方案,但我更好奇其中的原因。您是否尝试过转义要匹配的字符?或者用
new RegExp()声明正则表达式? -
都没有帮助...
-
能否提供复制
but execute it in GAS and it returns null.的脚本?因为,当console.log("sometext<tag>".match(/(^.*?)<[^<]*?>/)[1])和console.log("sometext<tag>".match(/^.*?(?=<[^<]*?>)/)[0])使用您的示例值和正则表达式在 Google Apps 脚本的脚本编辑器中运行时,两个脚本都会返回sometext的值。 -
感谢您的帮助!问题是:我发现了另一个更大的问题,这意味着我在过去 8 小时左右所做的一切基本上都是徒劳的,我必须重新开始(非常有趣),所以我不再关心了......我应该在大约 5 小时前上床睡觉......
标签: javascript regex google-apps-script