import Foundation
let pattern = #".*\:\/\/(?:www.)?([^\/]+)(\/.+")"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
<a href="https://nova.rambler.ru/search?query=Наталия%20Михайловна%20Дудинская&utm_source=search&utm_medium=enser&utm_campaign=self_promo&utm_content=search">
<a href="https://search.rambler.su/static/search/2852365218/css/main.min.css">
<a href="https://static.rambler.ru">
<a href="https://mail.rambler.ru/?utm_source=search&utm_campaign=self_promo&utm_medium=topline&utm_content=mail">
<a href="//ssp.rambler.ru/capirs_async.js">
<a href="https://vk.com/ekalashnikov81">
<a href="https://vk.com/ekalashnikov81/">
<a href="/saved?lang=ru&fmode=inject&tm=1567237779&tld=ru&la=1566641408&text=Kalashnikov%2CEvgenii&url=https%3A%2F%2Fvk.com%2Fekalashnikov81&l10n=ru&mime=html&sign=287b46925db7ebc34c2171935fd60ead&keyno=0">
"""#
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