基本上我有一个YouTube网址字符串,我想从URL中提取的视频ID。我发现在Objective C的一些代码,如下图所示:YouTube视频ID从URL - Swift3
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];
}
当我将这个代码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)
}
给出错误为:
能fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=2048 "The value “?.*v=([^&]+)” is invalid."
人帮我这个错误或任何人解释如何从URL获取视频ID在斯威夫特3.
在此先感谢
单行'return URLComponents(string:youtubeUrl)?. queryItems?.first(其中:{$ 0.name ==“v”})?.值' –
好点。将更新我的例子。 – totiG
谢谢你...... !!! –