import Foundation
let pattern = #"[AP]M[^a-zA-Z]-[^a-zA-Z]\S+[ ]?\S+[ ]?\S+:."#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = ##"""
4/16/14, 10:24 AM - Łuk123asz123 Sącz: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM@-!John(@!^$*(&Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM#-$John("<asd>")Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM%-^John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM&-*Łukasz Sącz: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM9-)Сергей Макаровe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM--+John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM_-=John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM\-|John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM]-}Сергей Макаров: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM{-[John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM'-"John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM;-:John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM,-<John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM.->John Doe: How is everything going on? Check this: iPhone7!
4/16/14, 10:24 AM/-?John Doe: How is everything going on? Check this: iPhone7!
"""##
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression