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

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

Как это сделать:

Давайте перейдем к TypeScript и посмотрим, как regex используется для общих задач.

// Определение шаблона regex для адреса электронной почты
const emailPattern = /\S+@\S+\.\S+/;

// Проверка соответствия строки шаблону электронной почты
const email = "[email protected]";
console.log(emailPattern.test(email)); // Вывод: true

// Поиск и замена цифр в строке
const replaceDigits = "Item 25 стоит $30".replace(/\d+/g, '#');
console.log(replaceDigits); // Вывод: "Item # стоит $#"

// Извлечение конкретных частей из строки с использованием групп захвата
const data = "Апрель 10, 2021";
const datePattern = /(\w+) (\d+), (\d+)/;
const [, month, day, year] = datePattern.exec(data) || [];
console.log(month, day, year); // Вывод: "Апрель" "10" "2021"

Глубокое погружение

В 1950-х годах математик Стивен Клини описал регулярные выражения как модель для представления регулярных языков, которые впоследствии стали важной частью компьютерных наук. На сегодняшний день regex повсеместно используется в программировании для работы с текстом.

Хотя regex является ножом швейцарского армейца для операций со строками, существуют и альтернативы. В зависимости от сложности задачи, иногда методы строк, такие как includes(), startsWith(), endsWith(), или даже разбор с помощью библиотеки, могут быть лучше. Например, разбор сложной строки JSON с использованием regex может быть кошмаром — используйте вместо этого парсер JSON.

Что касается реализации, regex в JavaScript и TypeScript основан на спецификации языка ECMAScript. Под капотом движки используют автоматы состояний для эффективного сопоставления шаблонов. Стоит отметить, что операции с regex могут быть затратными с точки зрения производительности, особенно с плохо написанными шаблонами — остерегайтесь “катастрофического отката”.

Смотрите также

  • Документация MDN о регулярных выражениях: MDN Регулярные выражения
  • Regex101: Инструмент для тестирования и отладки шаблонов regex Regex101
  • Книга “Овладение регулярными выражениями” для глубокого понимания: O’Reilly