import Foundation
let pattern = #"^(?!\d\d?[ex]\d\d?)(?:\[(?:[-\w\s]+)*\] )?(.*?)[-_. ]?(?:[\{\(\[]?(?:dvdrip|[-._\b]ita|[-._\b]eng|xvid| cd\d|dvdscr|\w{1,5}rip|divx|\d+p|\d{4}).*?)?\.([\w]{2,3})$"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive])
let testString = #"""
22. Non Puoi Sempre Dire Quello Kent Ti Pare.avi
6x13 - Una festa spettacolare.mkv
After earth.avi
Capitan America Il Primo Vendicatore 480p.mkv
Dylan Dog 2010 Ac3.avi
FUMETTOLOGY - 11 - PUNTATA SPECIALE.by.IperB.mkv
Guida galattica per autostoppisti [BDrip 720p ITA-ENG sub ITA-ENG].mkv
Hook - Capitan Uncino (1991).avi
Kick Ass 2.avi
Lemony Snicket - Una serie di sfortunati eventi 2004.avi
Monty Python e il Sacro Graal.avi
Pacific_Rim_2004_BdRip_1080p_ITA_ENG_ANONIMO_CREW.mkv
Pompeii.2014.iTALiAN.DTS.Dual.1080p.BluRay.x264-TRtD_TeaM.mkv
Ralph Spaccatutto.avi
Red Hot Chili Simpson.avi
RobinHood-UnUomoInCalzamaglia.ENG.srt
The.Lego.Movie.2014.iTALiAN.AC3.DUAL.1080p.BluRay.x264-TrTd_TeaM.mkv
The.Pagemaster.1994.1080p.BluRyMux.by.gemini9669.mkv
Tom.&.Jerry.Avventure.Giganti.Giant.Adventure.2013.DVDRip.ITA.AC3.ENG.Mp3-MLN.avi
Tron 480p.mkv
Viaggi Spazio - Temporali.avi
Vite Aliene.avi
[DivX - ITA] The Simpson - Natale con i Simpsons 2003.avi
[SUB ITA] Monty Python e il Sacro Graal.srt
[Sub ENG] Monty Python e il Sacro Graal.srt
codeschool_1322.mp4
corto.avi
film xvid.ENG.srt
[rec].mp4
recita.mp4
regeng.flv
"""#
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