import Foundation
let pattern = #"(.*[^"]+((?<=[.?!]\s).*lockbox.*(?<=[.?!]))[^"].*)"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
"krombacher alkoholfrei mw. 24 x 0,33 l bier krombacher alkoholfrei alkohol ist entbehrlich, geschmack nicht das krombacher pilsener alkoholfrei ist eine vollmundige erfrischung. bierkenner werden von dem erfrischend isotonischen durstlöscher überzeugt sein, denn es ist das beliebteste alkoholfreie pils in deutschland. abgefüllt wird es in der 0,33 l mehrwegflasche mit 24 flaschen pro kiste. bestell noch heute bis 23.30 uhr und wir liefern schon morgen mit dem einzigartigen lockboxsystem. Und so weiter.";
"krombacher alkoholfrei mw. 24 x 0,33 l bier krombacher alkoholfrei alkohol ist entbehrlich, geschmack nicht das krombacher pilsener alkoholfrei ist eine vollmundige erfrischung. bierkenner werden von dem erfrischend isotonischen durstlöscher überzeugt sein, denn es ist das beliebteste alkoholfreie pils in deutschland. abgefüllt wird es in der 0,33 l mehrwegflasche mit 24 flaschen pro kiste. bestell noch heute bis 23.30 uhr und wir liefern schon morgen mit dem einzigartigen lockboxsystem. Und so weiter.";
"""#
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