import Foundation
let pattern = #".*(playlist[^;]+;).*"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .dotMatchesLineSeparators])
let testString = #"""
<code lang="javascript">
playlist: {
id: 1 ,
seasons:[{"season":8,"blocked":false,"episodes":[{"episode":"1","id":252323,"hlsList":{"1080":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c051-s001.vidstr.club%2F06_30_20%2F06%2F30%2F03%2FHASZJ7WG%2FPSZ4DDK2.mp4%2Ftracks%2Fv1-a%2Fmaster.m3u8","480":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c051-s001.vidstr.club%2F06_30_20%2F06%2F30%2F03%2FHASZJ7WG%2FPSZ4DDK2.mp4%2Ftracks%2Fv2-a%2Fmaster.m3u8","720":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c051-s001.vidstr.club%2F06_30_20%2F06%2F30%2F03%2FHASZJ7WG%2FPSZ4DDK2.mp4%2Ftracks%2Fv1-a%2Fmaster.m3u8"},"audio":{"names":["Рус. Дублированный","AlexFilm","LostFilm","JASKIER","HDRezka Studio","AMS","Fox","Novamedia","FocusStudio","НеЗупиняйПродакшн (укр)","Eng.Original"],"order":[3,1,0,5,6,7,2,8,9,4,10]},"cc":[{"url":"https://hls-c1.vidstr.club/06_30_20/06/30/02/RTPE2OFQ/GGNIJSJX.vtt","name":"Рус. форсированные"}],"duration":3187,"title":"Игра престолов (8 сезон) - 1 серия"},{"episode":"10","id":223739,"dash":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c058-s001.pixars.org%2F05_20%2F29%2F23%2FCQWEUCBD%2F570778.mpd","hlsList":{"1080":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c058-s001.vidstr.club%2F05_29_20%2F05%2F29%2F18%2FWAH732XV%2FIMG6I4IA.mp4%2Ftracks%2Fv1-a%2Fmaster.m3u8","480":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c058-s001.vidstr.club%2F05_29_20%2F05%2F29%2F18%2FWAH732XV%2FIMG6I4IA.mp4%2Ftracks%2Fv2-a%2Fmaster.m3u8","720":"https://m1.rumer.club/manifest/MTc4LjE1OS4yMTUuOTY=/?video=https%3A%2F%2Fhls-t001-l001-c058-s001.vidstr.club%2F05_29_20%2F05%2F29%2F18%2FWAH732XV%2FIMG6I4IA.mp4%2Ftracks%2Fv1-a%2Fmaster.m3u8"},"audio":{"names":["AlexFilm","LostFilm","Fox","Рус. Дублированный","Укр. Дубльований","Eng.Original","Eng. Orig. with Commentary"],"order":[1,0,2,3,4,5,6]},"cc":[{"url":"https://hls-c1.vidstr.club/05_29_20/05/29/18/F4RPKISV/HOXVWRJ5.vtt","name":"Рус. форсированные"}],"duration":3157,"title":"Игра престолов (1 сезон) - 10 серия"}]}]
},
theme: "2"
});
</code></spoiler>
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"$1"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
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