import Foundation
let pattern = #"CAT:"((?:[^\"]+|\\.)*)""#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"adlo2gc01-adinbcgw01-16-04-28-12_37_20_1461847501.log:1464846761.422 184 10.221.251.213 TCP_NC_MISS/200 312 GET http://nqs-u33-gc2.redacted.com/ping?time=27.50399999995716&pingTime=5&totalBytes=334203&dataType=0&code=U_19160_3m2x9n8t2tywsyus&diffTime=5335 HTTP/1.1 userid -/nqs-usc1-gc2.redacted.com text/plain http://www.moon.com/audio Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/49.0.2623.112%20Safari/537.36 - --- OIP:114.155.103.27 AIP:215.74.50.9:8882 CAT:"Business Economy" NSL:0 OCT:27 ORT:60 XFF:11.51.42.169 PSP:52135 732 SSL-C:none SSL-V:- XVID:-"#
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