import Foundation
let pattern = #"\s+top="\d{1,}".*><b>'.$enDayNames.'\s+\D+<\/b>"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
top="241" left="79" width="105" height="7" font="3">InnerSpace - InnerSpace: Top </text>
top="250" left="79" width="97" height="7" font="3">25 Sexy Sci-Fi Stars 2015 (0)</text>
top="259" left="79" width="27" height="7" font="3">HD CC[]</text>
top="268" left="79" width="27" height="7" font="3">EXEMPT</text>
top="286" left="79" width="95" height="10" font="4">InnerSpace - - (208)</text>
top="299" left="79" width="38" height="10" font="4">HD CC[]</text>
top="311" left="79" width="38" height="10" font="4">EXEMPT</text>
top="331" left="80" width="85" height="12" font="2">Being Human - </text>
top="345" left="80" width="85" height="12" font="2">Cheater of The </text>
top="359" left="80" width="44" height="12" font="2">Pack (6)</text>
top="374" left="80" width="63" height="12" font="2">HD CC DV[]</text>
top="388" left="80" width="22" height="12" font="2">14+</text>
top="419" left="80" width="107" height="12" font="2">Star Trek: Voyager </text>
top="434" left="80" width="103" height="12" font="2">- Flesh And Blood, </text>
<text top="90" left="386" width="166" height="11" font="1"><b>03-AUG-2015 to 09-AUG-2015</b></text>
<text top="152" left="37" width="31" height="11" font="1"><b>06:00</b></text>
<text top="240" left="37" width="31" height="11" font="1"><b>07:00</b></text>
<text top="329" left="37" width="31" height="11" font="1"><b>08:00</b></text>
<text top="115" left="108" width="63" height="13" font="0"><b>Monday </b></text>
<text top="131" left="111" width="45" height="13" font="0"><b>Aug 03</b></text>
<text top="76" left="449" width="41" height="11" font="1"><b>SPACE</b></text>
<text top="117" left="324" width="67" height="11" font="1"><b>Wednesday</b></text>
<text top="131" left="337" width="40" height="11" font="1"><b>Aug 05</b></text>
<text top="115" left="439" width="65" height="13" font="0"><b>Thursday </b></text>
<text top="131" left="447" width="45" height="13" font="0"><b>Aug 06</b></text>
<text top="115" left="561" width="52" height="13" font="0"><b>Friday </b></text>
<text top="131" left="558" width="45" height="13" font="0"><b>Aug 07</b></text>
<text top="115" left="664" width="62" height="13" font="0"><b>Saturday </b></text>
<text top="131" left="670" width="45" height="13" font="0"><b>Aug 08</b></text>
<text top="115" left="780" width="60" height="13" font="0"><b>Sunday </b></text>
<text top="131" left="782" width="45" height="13" font="0"><b>Aug 09</b></text>
"""#
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