import Foundation
let pattern = #"System Message: \w+ is ready to chat\.\s+\d+\/\d+\/\d+\s\d+:\d+:\d+\s+\w+\s+\w+\s+(?P<my_field>.+)$"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
1/1/2019 2:42:55 AM
Aju
Hi Team
1/1/2019 2:42:56 AM
System
The data has been added:
- Customer Info
1/1/2019 2:42:59 AM
Rohi
System Message: Rohi is ready to chat.
1/1/2019 2:43:09 AM
Aju
Wish you a very happy ne year
1/1/2019 2:43:12 AM
Aju
new*
1/1/2019 2:43:25 AM
Aju
I need to KNOW ABOUT A CAR
1/1/2019 2:43:32 AM
Aju
please help me
1/1/2019 2:45:07 AM
Aju
Anyone there ?
1/1/2019 2:47:13 AM
Aju
??
1/1/2019 2:49:23 AM
Aju
?? Hi Rohi You there?
1/1/2019 2:51:16 AM
Rohi
Hello Aju my name is Rohi. How can I help you today?
1/1/2019 2:51:27 AM
Chat goes on....
"""#
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