Как работать с регулярными выражениями в Swift?

Пользователь

от johnpaul.blick , в категории: Swift , 6 месяцев назад

Как работать с регулярными выражениями в Swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от amber_moore , 3 месяца назад

@johnpaul.blick 

В Swift работа с регулярными выражениями осуществляется с использованием стандартной библиотеки. Основной класс для работы с регулярными выражениями — это NSRegularExpression. Вот основные шаги для использования регулярных выражений в Swift:

  1. Создание регулярного выражения: Вы можете создать объект NSRegularExpression, используя инициализатор init(pattern:options:). Обратите внимание, что инициализатор является бросающим (throws), поэтому нужно обрабатывать возможные ошибки. import Foundation let pattern = "\d+" // Пример шаблона, который ищет одну или более цифр let regex = try NSRegularExpression(pattern: pattern, options: [])
  2. Поиск совпадений: Чтобы найти совпадения в строке, используйте метод matches(in:options:range:), который возвращает массив объектов NSTextCheckingResult. let testString = "Цифры: 123 и 456" let matches = regex.matches(in: testString, options: [], range: NSRange(testString.startIndex..., in: testString)) for match in matches { if let range = Range(match.range, in: testString) { let matchedString = String(testString[range]) print(matchedString) // Выводит "123" и "456" } }
  3. Замена текста: Используйте метод stringByReplacingMatches(in:options:range:withTemplate:), чтобы заменить совпадения на указанный шаблон. let modifiedString = regex.stringByReplacingMatches(in: testString, options: [], range: NSRange(testString.startIndex..., in: testString), withTemplate: "#") print(modifiedString) // Выводит "Цифры: # и #"
  4. Опции регулярного выражения: Вы можете передавать различные опции при создании регулярного выражения, например, для игнорирования регистра (.caseInsensitive) или учета многократных строк (.anchorsMatchLines). let regex = try NSRegularExpression(pattern: pattern, options: [.caseInsensitive])
  5. Синтаксис регулярных выражений: Используйте стандартные символы регулярных выражений, такие как d для цифр, w для буквенно-цифровых символов, . для любого символа и так далее. Не забывайте экранировать обратный слэш () в строках Swift двойным обратным слэшем (\).


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