import Foundation
let pattern = #"^(<[^>]*>)*((?:\w+\W+){35})\w.*$"#
let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
let testString = #"""
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas vehicula lorem magna, sed commodo neque hendrerit eu. Aliquam vulputate tellus a tellus congue iaculis. Integer sit amet gravida leo. Ut hendrerit, massa non rutrum fringilla, justo sem sodales velit, vitae ornare odio mauris sed dui. Duis suscipit posuere neque vel gravida. Nam ullamcorper, justo maximus pretium iaculis, ipsum elit hendrerit turpis, eu convallis leo magna vitae neque. Praesent interdum eget quam quis ultricies.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas vehicula lorem magna, sed commodo neque hendrerit eu. Aliquam vulputate tellus a tellus congue iaculis. Integer sit amet gravida leo. Ut hendrerit, massa non rutrum fringilla, justo sem sodales velit, vitae ornare odio mauris sed dui. Duis suscipit posuere neque vel gravida. Nam ullamcorper, justo maximus pretium iaculis, ipsum elit hendrerit turpis, eu convallis leo magna vitae neque. Praesent interdum eget quam quis ultricies.</p>
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"$2"#
let lookupRange = (testString as NSString).range(of: pattern, options: .regularExpression, range: stringRange)
if lookupRange.intersection(stringRange) != nil {
let result = regex.stringByReplacingMatches(in: testString, range: lookupRange, withTemplate: substitutionString)
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