Извлечение IP-адреса из строки на Swift [закрыто]

Вопрос или проблема

У меня есть строка, которая может содержать IP-адрес вместе с другими текстами, например, “IP-адрес: 127.0.0.1”. Мне нужно извлечь часть, относящуюся к IP-адресу, если она существует, возможно, с использованием регулярных выражений в Swift.

Ответ или решение

Для извлечения IP-адреса из строки в Swift можно использовать регулярные выражения. В данном случае мы будем использовать встроенный класс NSRegularExpression. Ниже представлена примерная реализация, которая позволяет извлечь IP-адрес из строки, если он присутствует.

import Foundation

// Функция для извлечения IP-адреса из заданной строки
func extractIPAddress(from text: String) -> String? {
    // Регулярное выражение для поиска IPv4 адреса
    let ipPattern = "(\\d{1,3}\\.){3}\\d{1,3}"
    let regex = try? NSRegularExpression(pattern: ipPattern, options: .caseInsensitive)

    // Поиск совпадений
    let nsString = text as NSString
    let results = regex?.matches(in: text, options: [], range: NSRange(location: 0, length: nsString.length))

    // Если найдены совпадения, возвращаем первый найденный IP адрес
    if let match = results?.first {
        let ipRange = match.range
        return nsString.substring(with: ipRange)
    }

    // Если совпадения не найдены, возвращаем nil
    return nil
}

// Пример использования
let inputString = "IP Address: 127.0.0.1"
if let ipAddress = extractIPAddress(from: inputString) {
    print("Найденный IP адрес: \(ipAddress)")
} else {
    print("IP адрес не найден.")
}

Объяснение кода:

  1. Импортирование Foundation: Для работы с регулярными выражениями и строками.

  2. Регулярное выражение: Изображено в виде строки "(\\d{1,3}\\.){3}\\d{1,3}", что соответствует формату IPv4 адреса (число от 0 до 255, разделенное точками).

  3. Метод extractIPAddress: Эта функция принимает строку и возвращает первый найденный IP адрес или nil, если его нет.

  4. Поиск совпадений: Используя NSRegularExpression, мы ищем все совпадения в строке. Если совпадение найдено, оно преобразуется в строку.

  5. Проверка и вывод: Пример использования функции, где мы передаем строку с IP адресом и выводим результат.

Таким образом, данный код позволяет эффективно извлекать IPv4 адреса из текстовых строк с использованием регулярных выражений в Swift.

Оцените материал
Добавить комментарий

Капча загружается...