Regex Посмотрите за поддержкой поиска или нет, в редакторе скриптов Google Apps? - PullRequest
0 голосов
/ 13 января 2019

Я пишу код для синтаксического анализа моего почтового тела в папке входящих сообщений, чтобы организовать результирующие переменные в виде строки электронной таблицы.

Но часть регулярных выражений несколько проблематична ....

Я не могу использовать отрицательный запрос «(? <=)» И получить сообщение об ошибке «Недопустимый квантификатор?». Это означает, что GAS не поддерживает функцию Regex. </p>

Я кодировал и тестировал в редакторе скриптов Google Apps (я использую бизнес аккаунт).

Я вижу позитивный взгляд "(? =)" Работает хорошо ...

Но, как вы можете видеть детали в ссылке на документ ниже, просмотр Regex, совпадение именованных групп и другие должны были быть доступны уже в середине 2017 года.

https://developers.google.com/web/updates/2017/07/upcoming-regexp-features

Посмотрите на последнюю строку кода.

function searchContactMail() {

  var strTerms = '("")';
  var myThreads = GmailApp.search(strTerms, 0, 20);
  var myMsgs = GmailApp.getMessagesForThreads(myThreads); 
  var timeZone = Session.getScriptTimeZone(); 

 for(var i=0;i < myMsgs.length;i++){
 Logger.log(myMsgs[i][0].getSubject()); 
        var rawBody = myMsgs[i][0].getPlainBody(); // .slice(0, max)

    Logger.log(rawBody);
    var refno = /\d{5}R_[KJ]/.exec(rawBody);
    var wc = /[\d\,]+(?=\s+words)/.exec(rawBody);
    var title = /.*(?=[\n\r]+Word Count)/m.exec(rawBody);
    var dueDate = /.*(?=[\n\r]+K\-Editor)/m.exec(rawBody);
    var trAssigned = /.*(?=[\n\r]+Our Ref)/m.exec(rawBody);
    var HLT = /.*(?=[\n\r]+Unit Price)/m.exec(rawBody);
    var caseSpecific = /(?<=Specific Info[\n\r]+).+/m.exec(rawBody);

Я выбрал две основные сравнительные линии:

    var HLT = /.*(?=[\n\r]+Unit Price)/m.exec(rawBody);

. * [От 0 до нескольких символов]
(? = [\ n \ r] + Цена за единицу) [шаблон прогнозирования] -> это прекрасно работает.

    var caseSpecific = /(?<=Specific Info[\n\r]+).+/m.exec(rawBody);

(? <= Конкретная информация [\ n \ r] +) [шаблон поиска за спиной] <br> . + [множественный любой символ] -> это выдает ошибку «Недопустимый квантификатор?

...