Что такое эквивалент RegExMatch в скрипте Google Apps? - PullRequest
2 голосов
/ 26 июня 2019

Как получить эквивалент регулярного выражения в скрипте приложений?

Пример таблицы:

A1 = "ThisIsA2018Test"
B1 = "IsA(\d){1,4}Test"

REGEXMATCH(A1,B1) возвращает истину ...

Как бы я сопоставил это с помощью скрипта Google Apps?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Эквивалент встроенной функции Google Sheets REGEXMATCH в Google Apps Script / JavaScript: 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);
0 голосов
/ 26 июня 2019

Я предполагаю, что ваше выражение просто отлично, согласно этой документации ,

REGEXMATCH("ThisIsA2018Test", "IsA[0-9]{1,4}Test")
  • Скопируйте и вставьте A1 в A2, например
  • Скопируйте и вставьте B1 в B2
  • В C2 =REGEXMATCH(A2, B2) возвращает true

, а

REGEXMATCH("ThisIsA2018Test", "IsNOTA[0-9]{1,4}Test")

в C3 возвращает FALSE.

enter image description here

Демо

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}`);
    });
}

Дополнительную информацию см. В демоверсии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...