Что такое регулярное выражение (RegEx) и для чего оно используется?

«Что такое регулярное выражение (RegEx) и для чего оно используется?» — вопрос из категории Алгоритмы и структуры данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Регулярное выражение (RegEx) — это специальная текстовая строка, описывающая шаблон поиска в тексте. Это мощный инструмент для поиска, замены и валидации строк.

Основные элементы синтаксиса:

  • d — Любая цифра.
  • w — Буквенно-цифровой символ или подчеркивание.
  • [a-z] — Диапазон символов (от a до z).
  • + — Одно или более повторений предыдущего элемента.
  • * — Ноль или более повторений.
  • ^ и $ — Начало и конец строки соответственно.
  • (a|b) — Альтернатива (a или b).

Пример в Swift (поиск чисел в строке):

let text = "Заказ №12345 на сумму 99.99$"
let pattern = #"d+(.d+)?"# // Ищет целые и дробные числа

if let regex = try? NSRegularExpression(pattern: pattern) {
    let matches = regex.matches(in: text, range: NSRange(text.startIndex..., in: text))
    for match in matches {
        if let range = Range(match.range, in: text) {
            print("Найдено: (text[range])") // 12345, 99.99
        }
    }
}

Типичное применение:

  1. Валидация: Email, телефоны, пароли.
  2. Парсинг: Извлечение данных из логов или неструктурированного текста.
  3. Поиск и замена: Сложные текстовые операции в редакторах кода.