У меня есть xml-файл с регулярным выражением. Когда я его прочитал, я получаю выражение <a class="call-to-action-details".*?\shref="(.*?)"
в переменной под названием regex
.Escape regular expression
Затем я вызываю свой метод string: print(text.searchRegex(regex))
, и он ничего не возвращает.
Но если я называю свой метод регулярных выражений и избежать некоторых символов, то он возвращает результаты:
print(text.searchRegex("<a class=\"call-to-action-details\".*?\\shref=\"(.*?)\""))
Как ускользают символы? Или что я сделал неправильно? Моя regexSearch функция:
do {
let regex = try NSRegularExpression(pattern: regex,
options: NSRegularExpressionOptions(rawValue: 0))
let nstext = text as NSString
let all = NSRange(location: 0, length: nstext.length)
var matches: Array<String> = Array<String>()
regex.enumerateMatchesInString(text,
options: NSMatchingOptions(rawValue: 0),
range: all) {
(result : NSTextCheckingResult?, _, _) in
let theResult = nstext.substringWithRange(result!.rangeAtIndex(1))
matches.append(theResult)
}
print(matches)
return matches.joinWithSeparator("")
} catch {
return ""
}
Вы пытались вызвать 'escapedPatternForString:'? – matt