Swift:regex函数返回我空数组

时间:2018-08-19 11:00:53

标签: swift regex xcode

大家好,我在快速运行正则表达式时遇到了问题

我正在使用此正则表达式模式https://regexr.com/3u4on,并且在此网站上正常工作

但是在快速代码中它行不通吗?

您能帮忙解决这个问题吗

我正在迅速使用此代码:

func matches(for regex: String, in text: String) -> [String] {

    do {
        let regex = try NSRegularExpression(pattern: regex)

        let results = regex.matches(in: text,
                                    range: NSRange(text.startIndex..., in: text))
        return results.map {
            String(text[Range($0.range, in: text)!])
        }
    } catch let error {
        print("invalid regex: \(error.localizedDescription)")
        return []
    }
}

var videoButtonWithAtag = self.matches(for: "<a.[^>]*\\bhref\\s*=\\s*\"[^\"]*mp4.*?</a>", in: html)
print(videoButtonWithAtag) // it's empty

1 个答案:

答案 0 :(得分:0)

使用.*会丢失带有换行符的匹配项。您也应该包括它们。因此,请改用[\S\s]*

这应该有效:

let pattern = "<a.[^>]*\\bhref\\s*=\\s*\"[^\"]*mp4[\\S\\s]*?</a>"