vladd56
@vladd56
Пенсионер

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

Здравствуйте.
А как правильно писать регулярные выражения для google api?
Обрабатываю адреса пришедшие с Prom ua.
Основные форматы адресов такие
Стрый, № 3 (до 30 кг): ул. Почтовая, 5
Приколотное, №1: ул. Центральная, 32
Черкассы, Отделение №9 (до 30 кг): ул. Остафия Дашкевича, 34
Глеваха, №1: ул. Вокзальная, 11
Киев, №189 (до 30 кг): ул. Ялтинская, 24/23
Кучурган, №1: ул. Павла Каплуна, 71
Днепр
Ахтырка, №3 (до 30 кг на одно место): ул. Армейская (ран. Красноармейская), 89б

Написал регулярку
/(\w+)(,\s(.*[№]\s?\d+)(\s\((.+)\))?:\s(.+))?/
На сайте regex101.com. Всё показывает хорошо
Когда ввожу в код
var address = orderList["orders"][i]['delivery_address'];
              
              const matches = address.match(/(\w+)(,\s(.*[№]\s?\d+)(\s\((.+)\))?:\s(.+))?/);
             Logger.log('address=',address); 
              Logger.log('matches=',matches); 
              if(matches!==null){
                           for (let u = 1; u <= 4; u++) {
                               Logger.log(matches[u]);
                               //Logger.log(orderList); 
                             }

Получается бог знает что. На значок начало строки вообще вылетала программа. Что я делаю не так. Прошу помощи.
Как правильно писать регулярку для google sheets.
Могу загрузить скриншоты с результатами.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
Возможно, что нужно указать флаги в регулярном выражении (gmi). Если нет g флага, .match() возвращает только первое совпадение в виде массива, в котором совпадение находится по индексу 0.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы