Regex получить имена групп? - PullRequest
0 голосов
/ 29 апреля 2019

Ища способ получения Имен групп с помощью Swift, я нашел информацию с помощью GetGroupNames в C # ( Как мне получить имена захваченных групп в C # Regex? ), но не могу найти ничего подобного,Хочу быть в состоянии сказать, что группа существует.

В данный момент используется код ниже ...

let search = "Agora.2010.1080p.BluRay.x264.mp4"
let regex "^(Agora.)(?<"group name">2010)?"
let return_results = regex(for: regex, in: search)

func regex(for expression: String, in string: String) -> [String]? {

    guard let regex = try? NSRegularExpression(pattern: expression, options: [.caseInsensitive]) else { return nil }
    let results = regex.matches(in: string, range: NSRange(string.startIndex..., in: string))
    guard !results.isEmpty else { return nil }

    var values: [String] = []
    guard regex.numberOfCaptureGroups > 0 else { return nil }

    for r in 1...(regex.numberOfCaptureGroups) {
        let range = results[0].range(at: r)

        if range.length > 0 {
            let start = string.index(string.startIndex, offsetBy: range.location)
            let end = string.index(start, offsetBy: range.length)
            let value = string[start..<end]
            if !value.isEmpty {
                let value_string = String(value)
                values.append(value_string)
            }
        }
    }
    return values

В данный момент это просто ищет любые группы.Я хочу вернуть список словаря ["имя группы": "значение"].Я пытался из прикрепленной ссылки ... "regex.Match (line) .Groups" & "regex.GetGroupNames ()", которые не существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...