import Foundation
let pattern = #"\s*src\s*:\s*"(.*?)""#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = ##"""
<script type='text/javascript'>var holaplayer;
window.hola_player({ player: '#hola',
share: false,
poster: 'https://s475.clipwatching.com/i/02/02889/onou5kiza8cr.jpg',
sources: [{src: "https://s475.clipwatching.com/zx5x4sn47f2txcne4zqsjghf2y3o4r2okiasq6h2zzssd7xctj7bkkn3p7mq/v.mp4", type: "video/mp4", res: 360, label: "360"}],
preload: 'auto',
thumbnails:{ vtt:'https://clipwatching.com/dl?op=get_slides&length=1440&url=https://s475.clipwatching.com/i/02/02889/onou5kiza8cr0000.jpg' },ads: { adTagUrl: 'https://www.movcpm.com/watch.xml?key=383cac3ff2358ef864279f1c5e1053ba' },
videojs_options: {
html5: {
hlsjsConfig: {
debug: false,
startLevel: 1,
maxBufferLength: 30,
maxBufferSize: 10*1024*1024,
maxMaxBufferLength: 600,
capLevelToPlayerSize: true,
}
},
},
}, function(player){
"""##
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