import Foundation
let pattern = #"(SSESS[a-zA-Z0-9]*)=(.+?);"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"`{"server":"nginx/1.21.0","date":"Mon, 25 Apr 2022 11:34:20 GMT","content-type":"text/html; charset=UTF-8","transfer-encoding":"chunked","x-powered-by":"PHP/7.4.16","expires":"Sun, 19 Nov 1978 05:00:00 GMT","cache-control":"no-store, no-cache, must-revalidate, max-stale=0, private, post-check=0, pre-check=0","x-content-type-options":"nosniff","content-security-policy":"frame-ancestors 'self';","set-cookie":["SSESS8b04132f4690dc8ceb7837d5134a5519=ZbgVsmpp6DBRWwNCRMm5DTpfEoKffsNM7l8ILoCWkug; path=/; domain=test.net; secure; HttpOnly","su=1; expires=Thu, 22-Apr-2032 11:34:20 GMT; Max-Age=315360000; path=/; domain=test.net","lt=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; test.net","dtCookie=v_4_srv_10_sn_6364C36040ADFF47B91A838BB8B2CADD_perc_100000_ol_0_mul_1_app-3Aea7c4b59f27d43eb_1; Path=/; Domain=test.net","870be6fb89fc78ad2ca0eca3828e3019=7055c78f3c2b7311a5c77934caad6939; path=/; HttpOnly; Secure; SameSite=None"],"x-oneagent-js-injection":"true","x-ruxit-js-agent":"true","server-timing":"dtSInfo;desc=\\"0\\", dtRpid;desc=\\"493206686\\"","connection":"close"}`"#
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