import Foundation
let pattern = #"<img src=".*?((/img/[^"]+)/thumbs/([^"]+))".*alt="(.*?)"[^>]*class="([^"]*popup-img[^"]*)"[^>]*>"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive])
let testString = #"""
<img src="http://example/img/product/name/thumbs/100/img1.jpg" alt="описание фото1" width="100" height="100" caption="false" class="popup-img" />
<img src="http://example/img/product/name/thumbs/100/img2.jpg" alt="описание фото2" width="100" height="100" caption="false" class="popup-img left" />
<img src="http://example/img/product/name/thumbs/100/img2.jpg" alt="описание фото2" width="100" height="100" caption="false" class="wrong-class left" />
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"<a class="$5" href="..$2/$3" title="$4" style="background: url('..$1');-webkit-background-size: cover;background-size: cover;"></a>"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
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