import Foundation
let pattern = #"RJ.currentMP3Url = \'([\w\\\/-]+)'"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
</div>
</div>
</div>
</div>
</section>
<script>
RJ.currentMP3Url = 'mp3/Arian-Band-To-Ke-Ba-Man-Baashi';
RJ.currentMP3 = '40008';
RJ.currentMP3Type = 'mp3';
RJ.playingIndex = '0';
RJ.currentMP3Perm = 'Arian-Band-To-Ke-Ba-Man-Baashi';
RJ.currentAlbum = null;
RJ.currentPlaylist = null;
RJ.relatedMP3 = [{"next":"Arian-Band-To-Ke-Ba-Man-Baashi","index":0},{"next":"Arian-Band-Bargard","index":1},{"next":"Arian-Band-Bishtar","index":2},{"next":"Arian-Band-Deltangiha","index":3},{"next":"Arian-Band-Faseleh","index":4},{"next":"Arian-Band-Delam-Barat-Tang-Shodeh","index":5},{"next":"Arian-Band-To-Moondi-o-Man","index":6},{"next":"Arian-Band-Nemidoonam","index":7},{"next":"Arian-Band-Baade-To","index":8},{"next":"Arian-Band-Too-Cheshaye-Man-Negah-Kon","index":9},{"next":"Arian-Band-Ta-Abaad","index":10},{"next":"Arian-Band-Gole-Man","index":11},{"next":"Arian-Band-Parvaz","index":12},{"next":"Arian-Band-Gole-Aftab-Gardoon","index":13},{"next":"Arian-Band-Parvaz-(Club-Mix)","index":14},{"next":"Arian-Band-Ghasedak","index":15},{"next":"Arian-Band-Baroon","index":16},{"next":"Arian-Band-Panjereh","index":17},{"next":"Arian-Band-Setareh","index":18},{"next":"Arian-Band-Ey-Javidan-Iran","index":19},{"next":"Arian-Band-Tab","index":20},{"next":"Arian-Band-Gole-Hamishe-Bahar","index":21},{"next":"Arian-Band-Afsoongar","index":22},{"next":"Arian-Band-Iran","index":23},{"next":"Arian-Band-The-Words-I-Love-You-(Feat-Chris-de-Burgh)","index":24},{"next":"Arian-Band-Bi-To-Ba-To","index":25},{"next":"Arian-Band-Aroom-Aroom","index":26},{"next":"Arian-Band-Lahzeh-ha","index":27},{"next":"Arian-Band-Bahooneh","index":28},{"next":"Arian-Band-Na-Mehraboon","index":29},{"next":"Arian-Band-Farda-Male-Mast","index":30}];
RJ.nextMp3Base = '/mp3s/mp3/';
RJ.nextMp3AlbumBase = '/mp3s/album/';
RJ.playerVolume = 75;
setupMP3Ping();
</script>
"""#
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