import Foundation
let pattern = #"^(\w+)\s+(\w+)\s([\w-:]+)\s+([\w-]+)\s+(?P<process>[\w-]+)(\[.*\]:|:)"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
Sep 1 17:53:40 c7-ssm-01 journal: Rootkit Hunter: Please inspect this machine, because it may be infected.
Sep 1 17:53:40 c7-ssm-01 journal: Rootkit Hunter: Scanning took 1 minute and 31 seconds
Sep 1 17:52:09 c7-ssm-01 journal: Rootkit Hunter: Rootkit hunter check started (version 1.4.2)
Sep 1 17:49:26 c7-man-rds-01 journal: Rootkit Hunter: Please inspect this machine, because it may be infected.
Sep 1 17:49:26 c7-man-rds-01 journal: Rootkit Hunter: Scanning took 1 minute and 18 seconds
Sep 1 17:48:08 c7-man-rds-01 journal: Rootkit Hunter: Rootkit hunter check started (version 1.4.2)
Sep 1 17:24:17 c7-ids-01 journal: Rootkit Hunter: Please inspect this machine, because it may be infected.
Sep 1 17:24:17 c7-ids-01 journal: Rootkit Hunter: Scanning took 2 minutes and 6 seconds
Sep 1 17:22:11 c7-ids-01 journal: Rootkit Hunter: Rootkit hunter check started (version 1.4.2)
Sep 1 16:47:31 c7-dns-resolver-01 journal: Rootkit Hunter: Please inspect this machine, because it may be infected.
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
if let firstMatch = regex.firstMatch(in: testString, range: stringRange) {
let result: [String] = (1 ..< firstMatch.numberOfRanges).map { (testString as NSString).substring(with: firstMatch.range(at: $0)) }
print(result)
} else {
print("No matches were found.")
}
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