大家好,我在快速运行正则表达式时遇到了问题
我正在使用此正则表达式模式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
答案 0 :(得分:0)
使用.*
会丢失带有换行符的匹配项。您也应该包括它们。因此,请改用[\S\s]*
。
这应该有效:
let pattern = "<a.[^>]*\\bhref\\s*=\\s*\"[^\"]*mp4[\\S\\s]*?</a>"