import Foundation
let pattern = #"Account For Which Logon Failed.* Account Name:.+?\b(.*?)\s"#
let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
let testString = #"""
An account failed to log on.
Subject:
Security ID: S-1-5-21-1287344763-2688370722-3395302928-19873
Account Name: service_adfs
Account Domain: DOMAIN
Logon ID: 0xD62E4
Logon Type: 3
Account For Which Logon Failed:
Security ID: S-1-0-0
Account Name: user.thatiwant@DOMAIN.com
Account Domain:
"""#
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