import Foundation
let pattern = #"<strong>\s*([\d.]+)\s*<small style="color:white;">"#
let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
let testString = ##"""
<div class="row">
<div class="col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">
<div>
<h2 class="heading-large">
<strong>
61312.3 <small style="color:white;">UAH</small>
</strong>
<small><span class="glyphicon glyphicon-arrow-down text-danger"></span></small> </h2>
<br>
<!--<a href="#" class="showRateDetail" style="color:#BFECFF;">Подробности конвертации <span class="caret_blue"></span></a>-->
<div>
<div class="col-xs-12" style="margin-left:0px;padding-left:0px;padding-top:10px;">
<table class="table table-condensed" style="opacity:0.7;">
<thead>
<tr align="left">
<th>Биржа</th>
<th>Курс</th>
<th>Суточный объем</th>
</tr>
</thead>
<tbody>
<tr align="left">
<td><a href="/exchange/exmo/" style="color:inherit;">Exmo</a></td>
<td>61649.99999999</td>
<td>
<div class="progress" style="opacity:0.6;">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="53.68" aria-valuemin="0" aria-valuemax="100" style="width: 53.68%;">
<span style="color:#004F70;padding-left:5px;">17</span>
</div>
</div>
</td>
</tr><tr align="left">
<td><a href="/exchange/kuna/" style="color:inherit;">Kuna</a></td>
<td>60921.00000000</td>
<td>
<div class="progress" style="opacity:0.6;">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="46.32" aria-valuemin="0" aria-valuemax="100" style="width: 46.32%;">
<span style="color:#004F70;padding-left:5px;">15</span>
</div>
</div>
</td>
</tr> <tr align="left">
<td colspan="2">
<b>Общий объем</b>
</td>
<td>
<b>33 BTC</b>
</td>
</tr>
<tbody>
</table>
</div>
</div>
</div>
</div>
</div>
"""##
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