Подстановочные знаки скриптов Google Таблиц

Я знаю, что могу использовать подстановочные знаки в таких формулах, как;

=COUNTIF(A:A ; "*text*")

Я хочу запустить свой код, если A1 содержит «текст».

A1 = "тестовый текст"

Может кто-нибудь мне помочь ?


person NoTolerance    schedule 18.12.2016    source источник


Ответы (3)


Для скрипта Google Apps можно использовать регулярные выражения. Любой оператор, окруженный косой чертой, интерпретируется как регулярное выражение, если вы жестко закодируете его в скрипте приложений:

/.*text.*/

Обратите внимание, что подстановочные знаки используются в регулярных выражениях несколько иначе: перед звездочкой * необходимо поставить точку .:
_4 _: _ 5_
регулярное выражение: /.*text.*/

Итак, быстрый сценарий будет выглядеть так:

function matchText(text){
    try {
        var pattern = /.*text.*/;
        var isMatch = text.match(pattern)[0];
        return isMatch
    } catch (e) {
    return e.toString();
  }
};

Обобщенная настраиваемая функция:

function matchText(text,pattern){
    try {
        var isMatch = text.match(pattern)[0];
        return isMatch
    } catch (e) {
    return e.toString();
  }
};

Вы также можете сделать это с помощью собственных формул, используя regexextract или regexmatch, что всегда было моим любимым. Не забудьте использовать правильную нотацию подстановочных знаков регулярных выражений, указав точку перед звездочкой: .*. Или просто используйте text, который автоматически найдет любой его экземпляр:

введите здесь описание изображения

person Aurielle Perlmann    schedule 18.12.2016
comment
(Придирка к терминологии: любой оператор, окруженный косой чертой, интерпретируется как регулярное выражение, если вы жестко кодируете его в скрипте приложений: /*text*/ ↦ Я думаю, вы имеете в виду выражение. (Выражения составляют части утверждений.)) - person Aaron Thoma; 19.12.2016

=IF(COUNTIF(A1, "*text*"), "your code here", "Code not run: A1 doesn't contain 'text'")

Это то, что вы имели в виду - код формулы? Или вы хотите использовать скрипт Google Apps?

(Для этого может быть функция с более интуитивно понятным названием, чем COUNTIF (), но она помогает.)

person Aaron Thoma    schedule 18.12.2016
comment
я хочу использовать скрипт приложений Google. - person NoTolerance; 18.12.2016

Мое решение:

 if(test.indexOf("2,")>-1)
{
    my code goes here
    }
person NoTolerance    schedule 24.12.2016