import Foundation
let pattern = #"\"num_records\\":\s*(\d+)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
"{\"cursor\":\"\",\"hits\":3,\"results\":[{\"id\":65673,\"num_records\":14631,\"assets\":{\"ip_addresses\":14631,\"password\":14631,\"target_url\":14631,\"keyboard_languages\":14631,\"user_sys_registered_owner\":14484,\"country\":14631,\"infected_machine_id\":14631,\"email\":7346,\"username\":7285,\"user_os\":14631,\"user_hostname\":14631,\"log_id\":14631,\"infected_time\":14631,\"country_code\":14581}},{\"id\":65675,\"num_records\":2602,\"assets\":{\"display_resolution\":2602,\"ip_addresses\":2534,\"user_browser\":2602,\"password\":2602,\"target_url\":2602,\"keyboard_languages\":2602,\"user_sys_registered_owner\":2601,\"country\":2597,\"infected_machine_id\":2602,\"email\":943,\"full_name\":25,\"av_softwares\":2348,\"username\":1659,\"infected_path\":2534,\"user_os\":2602,\"log_id\":2602,\"infected_time\":2602,\"country_code\":2597,\"timezone\":2602}},{\"id\":65677,\"num_records\":139,\"assets\":{\"display_resolution\":139,\"ip_addresses\":139,\"user_browser\":139,\"password\":139,\"target_url\":139,\"keyboard_languages\":139,\"user_sys_registered_owner\":139,\"country\":139,\"infected_machine_id\":139,\"email\":3,\"full_name\":7,\"av_softwares\":139,\"username\":136,\"infected_path\":139,\"user_os\":139,\"log_id\":139,\"infected_time\":139,\"country_code\":139,\"timezone\":139}}]}"
"""#
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