Использование регулярных выражений

Google Apps Script:
Использование регулярных выражений

Как:

Использование регулярных выражений в Google Apps Script довольно простое благодаря синтаксису, основанному на JavaScript. Вот как вы можете включить regex в ваши скрипты для распространенных задач, таких как поиск и валидация данных.

Поиск в строках

Предположим, вы хотите найти в строке определенный шаблон, например, адрес электронной почты. Вот простой пример:

function findEmailInText(text) {
  var emailPattern = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/;
  var found = text.match(emailPattern);
  if (found) {
    Logger.log("Найдено: " + found[0]);
  } else {
    Logger.log("Электронная почта не найдена.");
  }
}

// Пример использования
findEmailInText("Свяжитесь с нами по адресу [email protected].");

Проверка данных

Регулярные выражения отлично подходят для валидации данных. Ниже приведена функция, которая проверяет входную строку на соответствие простой политике пароля (как минимум одна заглавная буква, одна строчная буква и минимум 8 символов).

function validatePassword(password) {
  var passwordPattern = /^(?=.*[a-z])(?=.*[A-Z]).{8,}$/;
  return passwordPattern.test(password);
}

// Пример вывода
Logger.log(validatePassword("Str0ngPass")); // Выводит: true
Logger.log(validatePassword("weak"));       // Выводит: false

Углубленное изучение

Регулярные выражения в Google Apps Script унаследованы от JavaScript, впервые стандартизированные в спецификации языка ECMAScript в июне 1997 года. Несмотря на их мощь, иногда они могут привести к путаному и трудно поддерживаемому коду, особенно при чрезмерном использовании или для выполнения сложных задач соответствия шаблонов, которые могут быть более эффективно решены другими методами анализа.

Например, хотя вы можете использовать regex для разбора HTML или XML на скорую руку, делать это, как правило, не рекомендуется из-за вложенных и сложных структур этих документов. Вместо этого инструменты, специально предназначенные для анализа таких структур, такие как DOM-парсеры для HTML, являются более надежными и удобочитаемыми.

Более того, разработчикам Google Apps Script следует быть внимательными к возможным проблемам производительности при использовании сложных шаблонов regex в задачах масштабной манипуляции текстом, поскольку обработка regex может быть ресурсоемкой. В таких случаях разделение задачи на более простые подзадачи или использование встроенных функций манипуляции строк могут предложить лучший баланс производительности и поддерживаемости.