【发布时间】:2019-11-07 19:03:53
【问题描述】:
如何在应用程序脚本中获得 regexmatch 的等效项?
电子表格示例:
A1 = "ThisIsA2018Test"
B1 = "IsA(\d){1,4}Test"
REGEXMATCH(A1,B1) 返回真...
如何使用 Google 应用程序脚本匹配这个?
【问题讨论】:
标签: javascript regex google-apps-script google-sheets
如何在应用程序脚本中获得 regexmatch 的等效项?
电子表格示例:
A1 = "ThisIsA2018Test"
B1 = "IsA(\d){1,4}Test"
REGEXMATCH(A1,B1) 返回真...
如何使用 Google 应用程序脚本匹配这个?
【问题讨论】:
标签: javascript regex google-apps-script google-sheets
Google Apps Script/JavaScript 中的 Google Sheets 内置函数 REGEXMATCH 的等价物是RegExp.prototype.test
var A1 = "ThisIsA2018Test";
var B1 = "IsA(\\d){1,4}Test"; // Please note that `\d` was escaped by adding a `\`
var test = new RegExp(B1).test(A1);
console.info(test);
【讨论】:
根据this documentation,我猜你的表情还可以,
REGEXMATCH("ThisIsA2018Test", "IsA[0-9]{1,4}Test")
=REGEXMATCH(A2, B2) 返回 true和
REGEXMATCH("ThisIsA2018Test", "IsNOTA[0-9]{1,4}Test")
在 C3 中返回 FALSE。
const regex = /IsA[0-9]{1,4}Test/gm;
const str = `ThisIsA2018Test`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
【讨论】:
const(它的工作原理与 var 非常相似)和其他默认情况下不支持箭头函数。