import Foundation
let pattern = #"[\n.]*(<tr class="hl" >[.\n]*<\/tr>)[.\n]*"#
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let testString = #"""
<table id="hhh"
class="row_table_data">
<thead>
<tr>
<td></td>
<td>J</td>
<td>N</td>
<td>E</td>
</tr>
</thead>
<tbody>
<tr class="hover">
<td class="ras " >2</td>
<td class="plsa " ><a href="">X</a> </td>
<td class="lefv " >3</td>
<td class="xpm lc" >1</td>
</tr>
<tr class="hl" >
<td class="ras fc" >3</td>
<td class="plsa " ><a href="">M</a> </td>
<td class="lefv " >3</td>
<td class="xpm lc" >3</td>
</tr>
<tr class="hover">
<td class="ras " >4</td>
<td class="plsa " ><a href="">l</a> </td>
<td class="lefv " >3</td>
<td class="xpm " >3</td>
</tr>
"""#
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