import Foundation
let pattern = #"(?i)\d\d\+ boys only|wow only \d\d\+|only \d\d\+ (?:boys|allowed)|\d\d\+ only boys|boys only \d\d\+|(?:Onlyfans|teen|NSFW|nude).* l[3e][4a]ks*?|(?:underage|T[3e]{2}n|🔞|18\+) (?:nudes|content ?(?:discord|l[3e][4a]ks*?|here)*?|p[0o]*?rn|pr[0o]*?n)|l[3e]{2}[4a\*]*?k (?:Onlyfans|teen|NSFW|nude)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
==========AUTOMOD INSTRUCTIONS===========
The above regex is used to mute users.
The following regex is used to ban users (each newline is a different "mesage matches regex" trigger on a single rule (because of character limits)
gg/(sextiktok|freecheats|goldtiktok|tiktoksex|eegirls|esexx|desexys|kissmee|bellanudes|essex|trashnudes|tiktok18|freetiktok|bestnudes|esexhentai|tiktokhomes|welcomensfw|dcleaks|onlynudes|websluts|fullnudes|leeknudeteen|xxnude|tiktoksnfw|xxxpussy)
gg/(nudeteen|leaks4you|xxxhots|pent|sexshare|tiktokteens|ofporn|teenscp|xxxvids|wifey|nudeporn|teengirl|cpteens|sexyhot|sexyteen)
gg/(Vm2RwraURb|WS6k2Yxe|kwJk8Ntz|faqADJpbkR|MscE4Gp2|HcqGy9c7yE|KKmUfYU92x|rryS5NyRhq|7DRYnTwFCS|G56FvssV)
(?i)\[steamcommunity\.com\/gift\/\d+\]\(<?https:\/\/.+>?\)
==========ACTUAL TEST STRINGS===========
Hot Teen & Nsfw Leaks :underage: :peach: https://discord.gg/7DRYnTwFCS @everyone
Onlyfans leaks + Teen content here 🍑 🍒
@everyone Free Onlyfans and Leaks here: discord.gg/dcleaks
https://discord.gg/MscE4Gp2 FREE NSFW + 40€ GIVEAWAY + Leaks + PORN
🔞 Free 18+ Content + Free Teen Leaks @here @everyone:
https://discord.gg/leeknudeteen Best server for leek nude +18
Free 18+ Content: :peach: @here @everyone
🔞 content
Teen Content & OnlyFans Leaks 🍑🔞
Onlyfans leaks + Teen content here :heart: : https://discord.gg/sexshare @everyone
BEST OnlyFans LEAKS & Teen Content 🍑 🔞
Onlyfans leaks + Teen content here :heart: : https://discord.gg/teenscp @everyone
"""#
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