import Foundation
let pattern = #"Tasks: (\d+) total, (\d+) running, (\d+) sleeping, (\d+) stopped, (\d+) zombie"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
top - 11:41:04 up 21 min, 1 user, load average: 0.00, 0.01, 0.07
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.7 us, 2.2 sy, 0.5 ni, 92.0 id, 0.3 wa, 0.0 hi, 0.3 si,
KiB Mem: 501692 total, 475348 used, 26344 free, 13032 buffers
KiB Swap: 0 total, 0 used, 0 free. 281204 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
1 root 20 0 33632 2940 1468 S 0.0 0.6 0:01.87
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01
...
17836 www-data 20 0 287448 6708 2424 S 0.0 1.3 0:00.02
17914 vagrant 20 0 23528 1396 1048 R 0.0 0.3 0:00.00
"""#
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