import Foundation
func containsForbidden(_ text: String, forbidden: Set<String>) -> Bool {
let regex = try! NSRegularExpression(pattern: "[a-z0-9]+")
let range = NSRange(text.startIndex..., in: text.lowercased())
let words = regex.matches(in: text.lowercased(), range: range)
.compactMap { Range($0.range, in: text.lowercased()) }
.map { String(text.lowercased()[$0]) }
return !forbidden.isDisjoint(with: words)
}
let text = "This text contains a badword inside"
let forbidden: Set<String> = ["badword", "evil", "kill", "nasty", "terrible"]
print(containsForbidden(text, forbidden: forbidden)
? "Forbidden word detected"
: "No forbidden words found")
/*
run:
Forbidden word detected
*/