import Foundation
let pattern = #"""
m!\A[][:\p{Ll}\p{Lu}\p{Zs}\p{Nd}]\[error\][][.\p{Ll}\p{Zs}\p{Nd}]ModSecurity:[]MS_[".\/\p{Ll}\p{Zs}\p{Nd}-]\[id "9990229"\][]MS_[".\/\p{Ll}\p{Zs}\p{Nd}-]$!mg) {
}
"""#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
[Tue Nov 04 20:49:49 2014] [error] [client 72.253.126.112] ModSecurity: [file "/etc/httpd/modsecurity-crs/custom_Mod_Security_rules/srb_block_login_attempts.conf"] [line "11"] [id "9990229"] [msg "Bad url - blogs"] [severity "CRITICAL"] Access denied with code 403 (phase 2). Pattern match "/blogs/" at REQUEST_URI. [hostname "mauicom.com"] [uri "/blogs/"] [unique_id "VFnIjUj9fm8AAI64MP4AAAAG"]
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #""#
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