import Foundation
let pattern = #"[(bitrate:\ )] (\d*) [(kb\/s)]"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = ##"""
ffmpeg version git-2012-01-25-247d30a Copyright (c) 2000-2012 the FFmpeg developers
built on Jan 25 2012 16:56:18 with gcc 4.6.2
configuration: --extra-cflags=-I../static/include --extra-ldflags='-L../static/lib -static' --enable-gpl --enable-version3 --enable-static --disable-shared --disable-debug --enable-runtime-cpudetect --enable-x11grab --enable-libmp3lame --enable-libx264 --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --disable-ffserver
libavutil 51. 34.101 / 51. 34.101
libavcodec 53. 59.100 / 53. 59.100
libavformat 53. 30.100 / 53. 30.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 60.100 / 2. 60.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '3825402d75f04cadad96fa9f3af62c82.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
creation_time : 2016-09-30 16:14:06
Duration: 00:00:15.04, start: 0.000000, bitrate: 1609 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1152x720 [SAR 1:1 DAR 8:5], 1611 kb/s, 30.30 fps, 30.30 tbr, 30k tbn, 60 tbc
Metadata:
creation_time : 2016-09-30 16:14:06
handler_name : VideoHandler
At least one output file must be specified
"""##
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