import Foundation
let pattern = #"re.match('(.*).*(\[.*\]).*(\[.*\])', '')"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
The.Last.Ship.S02E13.1080p.WEB-DL.DD5.1.H.264-BLiN.mkv*
The.Librarians.US.S02E05.720p.HDTV.x264-FLEET.mkv*
The.Librarians.US.S02E06.720p.HDTV.x264-0SEC.mkv*
The.Librarians.US.S02E08.720p.HDTV.x264-0SEC.mkv*
The.Librarians.US.S02E09.720p.HDTV.x264-0SEC.mkv*
The.Librarians.US.S02E10.720p.HDTV.x264-KILLERS.mkv*
tvs-csi-cyber-dd51-ded-dl-18p-ithd-avc-101.mkv*
tvs-csi-cyber-dd51-ded-dl-18p-ithd-avc-102.mkv*
tvs-csi-cyber-dd51-ded-dl-18p-ithd-avc-103.mkv*
Warehouse.13.S04E20.720p.HDTV.x264-EVOLVE.mkv*
Warehouse.13.S05E01.720p.HDTV.x264-REMARKABLE.mkv*
warehouse.13.s05e02.720p.hdtv.x264-killers.mkv*
warehouse.13.s05e03.720p.hdtv.x264-killers.mkv*
warehouse.13.s05e04.720p.hdtv.x264-2hd.mkv*
Warehouse.13.S05E05.720p.HDTV.X264-DIMENSION.mkv*
Warehouse.13.S05E06.720p.HDTV.X264-DIMENSION.mkv*
White.Collar.S04E15.The.Original.720p.WEB-DL.DD5.1.h.264-NTb.mkv*
White.Collar.S04E16.PROPER.720p.HDTV.x264-EVOLVE.mkv*
White.Collar.S05E01.At.What.Price.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E02.Out.of.the.Frying.Pan.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
white.collar.s05e03.720p.hdtv.x264-killers.mkv*
White.Collar.S05E04.Controlling.Interest.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E05.Master.Plan.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E06.Ice.Breaker.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E06.Ice.Breaker.720p.WEB-DL.DD5.1.H.264-NTb-thumb.jpg*
White.Collar.S05E07.Quantico.Closure.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E07.Quantico.Closure.720p.WEB-DL.DD5.1.H.264-NTb-thumb.jpg*
White.Collar.S05E08.720p.HDTV.x264-IMMERSE.mkv*
White.Collar.S05E08.720p.HDTV.x264-IMMERSE-thumb.jpg*
White.Collar.S05E09.No.Good.Deed.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E09.No.Good.Deed.720p.WEB-DL.DD5.1.H.264-NTb-thumb.jpg*
White.Collar.S05E10.Live.Feed.720p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S05E10.Live.Feed.720p.WEB-DL.DD5.1.H.264-NTb-thumb.jpg*
White.Collar.S05E11.720p.HDTV.x264-REMARKABLE.mkv*
White.Collar.S05E11.720p.HDTV.x264-REMARKABLE-thumb.jpg*
White.Collar.S05E12.REPACK.720p.HDTV.x264-KILLERS.mkv*
White.Collar.S05E13.720p.HDTV.x264-REMARKABLE.mkv*
White.Collar.S06E01.Borrowed.Time.1080p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S06E02.Return.to.Sender.1080p.WEB-DL.DD5.1.H.264-NTb.mkv*
White.Collar.S06E03.720p.HDTV.x264-KILLERS.mkv*
White.Collar.S06E04.720p.HDTV.x264-KILLERS.mkv*
White.Collar.S06E05.720p.HDTV.x264-KILLERS.mkv*
White.Collar.S06E06.720p.HDTV.X264-DIMENSION.mkv*
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
if let firstMatch = regex.firstMatch(in: testString, range: stringRange) {
let result: [String] = (1 ..< firstMatch.numberOfRanges).map { (testString as NSString).substring(with: firstMatch.range(at: $0)) }
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