import Foundation
let pattern = #"\/tax-efficient-(guide|investing)|\/tax-raid-high-earners"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
<!-- INSTAPAGE: Paths only -->
/
/tax-efficient-guide
/tax-efficient-investing
/tax-efficient-guide-download
/tax-raid-high-earners
/tax-raid-high-earners-download
/tax-efficient-investing-capital-gains
/tax-efficient-investing-capital-gains-download
/pb_iht_guide
/pb-iht-download
/iht-guide
/iht-guide-download
/inheritance-tax
/inheritance-tax-download
/iht-free-isa
/make-isa-iht-free
/iht-free-isa-download
/aim-isa-guide
/aim-isa-guide-download
/eis-factsheet
/EIS-factsheet-download
/seis-factsheet
/seis-factsheet-download
/vct-factsheet
/vct-factsheet-download
/eis-knowledge-intensive
/uktn-download
/free-research-report-octopus-titan
/free-research-report-octopus-titan-download
/investment-ideas
/investment-ideas-download
/isa-iht-free-report
/isa-iht-free-report-download
<!-- WWW SITE -->
"""#
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