小编Sus*_*ahu的帖子

来自网址的Youtube视频ID - Swift3

基本上我有一个Youtube URL作为字符串,我想从该URL中提取视频ID.我发现目标c中的一些代码如下:

NSError *error = NULL;
NSRegularExpression *regex = 
[NSRegularExpression regularExpressionWithPattern:@"?.*v=([^&]+)"
                                          options:NSRegularExpressionCaseInsensitive
                                            error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:youtubeURL
                                                options:0
                                                  range:NSMakeRange(0, [youtubeURL length])];
if (match) {
    NSRange videoIDRange = [match rangeAtIndex:1];
    NSString *substringForFirstMatch = [youtubeURL substringWithRange:videoIDRange];
}
Run Code Online (Sandbox Code Playgroud)

当我将此代码转换为swift3时,它是:

var error: Error? = nil
var regex = try! NSRegularExpression(pattern: "?.*v=([^&]+)", options: .caseInsensitive)
var match = regex!.firstMatch(in: youtubeURL, options: [], range: NSRange(location: 0, length: youtubeURL.length))!
if match {
    var videoIDRange = match.rangeAt(1)
    var substringForFirstMatch = (youtubeURL as NSString).substring(with: videoIDRange)
}
Run Code Online (Sandbox Code Playgroud)

给出错误:

致命错误:'试试!' 表达式意外地引发了错误:错误Domain …

regex nsregularexpression swift swift3

5
推荐指数
4
解决办法
5769
查看次数

标签 统计

nsregularexpression ×1

regex ×1

swift ×1

swift3 ×1