javascript中的正则表达式
我有一个简单的谷歌电子表格链接javascript中的正则表达式,javascript,google-sheets,google-spreadsheet-api,Javascript,Google Sheets,Google Spreadsheet Api,我有一个简单的谷歌电子表格链接 https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345 我有以下regextract用于提取链接的ID: =REGEXEXTRACT(C2,“(?:/d/)(.*)(?:\/edit)”) 这似乎达到了预期的效果 我试图在谷歌脚本中重新创建它,但我没有得到相同的答案 function regex() { var link = "https://docs.g
https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345
我有以下regextract用于提取链接的ID:
=REGEXEXTRACT(C2,“(?:/d/)(.*)(?:\/edit)”)
这似乎达到了预期的效果
我试图在谷歌脚本中重新创建它,但我没有得到相同的答案
function regex() {
var link = "https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345";
var regExp = new RegExp("(?:\/d\/)(.*)(?:\/edit)", "gi")
var id = regExp.exec(link)[1];
Logger.log(id)
}
请尝试(?:\gid=.*)
因此,您将获得id,即gid=12345,您的正则表达式似乎与/d/后面的字母匹配。 如果在斜杠之间查找单词字符,而不是贪婪的
*
,可能会得到更好的结果
\/d\/(\w+)\/
示例代码段:
函数getIdFromLink(链接){
设regExp=/\/d\/(\w+)\/;
返回regExp.exec(link)[1];
}
变量链接=”https://docs.google.com/spreadsheets/d/kdfaghlkdghidubtinvieorn/edit#gid=12345";
var id=getIdFromLink(链接);
//Logger.log(id)
控制台日志(“id:+id”)代码>这与语法有关,我不知道为什么,但用另一个括号括起来似乎可以解决这个问题:
(?:(\/d\/))(.*)(?:\/edit)
那么,你得到了什么答案呢?@NikxDa我得到了以下答案:
/docs.google.com/spreadsheets/d/kdfaghlkdgidubtinvieorn