У меня есть этот код, работающий в Objective-Cфункции matchesInString возвращение пустого массива в Swift
NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern:@"(.*?)(<[^>]+>|\\Z)" options:NSRegularExpressionCaseInsensitive|NSRegularExpressionDotMatchesLineSeparators error:nil];
NSArray* results = [regex matchesInString:text options:NSMatchingReportProgress range:NSMakeRange(0, text.length)];
Но Swift версия не работает. matchesInString
возвращается пустой Array
(используя тот же тэгами текст в обоих случаях)
let regexOptions = NSRegularExpressionOptions.CaseInsensitive | NSRegularExpressionOptions.DotMatchesLineSeparators
let regex = NSRegularExpression.regularExpressionWithPattern("(.*?)(<[^>]+>|\\Z)", options: regexOptions, error: nil)
var results = regex.matchesInString(markupText, options: nil, range: NSMakeRange(0, countElements(markupText))) as Array<NSTextCheckingResult>
Даже если в документации говорится, что matchesInString
возвращает Array
из NSTextCheckingResult
, я отметил, что в коде Objective-C (что работает) Array
содержит NSSimpleRegularExpressionCheckingResult
объектов, а не NSTextCheckingResult
объектов. Пустой Array
, о котором сообщается в версии Swift, сообщается ноль NSTextCheckingResult
объектов, но
Любая идея о том, что здесь отсутствует?
Thx для ответа ... Теперь это работает ... Кажется, что Swift все еще развивается, и все наладилось, когда мы говорим – eharo2