Tôi đã gặp sự cố gần đây với url atttribution_link vì vậy tôi đã thử tạo regex của riêng mình cũng hoạt động cho những người đó.
Đây là chuỗi của tôi regex:
(https?://)?(www\\.)?(yotu\\.be/|youtube\\.com/)?((.+/)?(watch(\\?v=|.+&v=))?(v=)?)([\\w_-]{11})(&.+)?
và đây là một số trường hợp thử nghiệm tôi đã cố gắng:
http://www.youtube.com/watch?v=iwGFalTRHDA
https://www.youtube.com/watch?v=iwGFalTRHDA
http://www.youtube.com/watch?v=iwGFalTRHDA&feature=related
http://youtu.be/iwGFalTRHDA
http://www.youtube.com/embed/watch?feature=player_embedded&v=iwGFalTRHDA
http://www.youtube.com/embed/watch?v=iwGFalTRHDA
http://www.youtube.com/embed/v=iwGFalTRHDA
http://www.youtube.com/watch?feature=player_embedded&v=iwGFalTRHDA
http://www.youtube.com/watch?v=iwGFalTRHDA
www.youtube.com/watch?v=iwGFalTRHDA
www.youtu.be/iwGFalTRHDA
youtu.be/iwGFalTRHDA
youtube.com/watch?v=iwGFalTRHDA
http://www.youtube.com/watch/iwGFalTRHDA
http://www.youtube.com/v/iwGFalTRHDA
http://www.youtube.com/v/i_GFalTRHDA
http://www.youtube.com/watch?v=i-GFalTRHDA&feature=related
http://www.youtube.com/attribution_link?u=/watch?v=aGmiw_rrNxk&feature=share&a=9QlmP1yvjcllp0h3l0NwuA
http://www.youtube.com/attribution_link?a=fF1CWYwxCQ4&u=/watch?v=qYr8opTPSaQ&feature=em-uploademail
http://www.youtube.com/attribution_link?a=fF1CWYwxCQ4&feature=em-uploademail&u=/watch?v=qYr8opTPSaQ
Cũng nên nhớ để kiểm tra chuỗi bạn nhận được cho url video của bạn, đôi khi nó có thể nhận được các ký tự phần trăm.Nếu vậy, chỉ cần thực hiện điều này
url = [url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
và cần khắc phục.
cũng nhớ rằng chỉ số của khóa youtube tại là chỉ số 9.
NSRange youtubeKey = [result rangeAtIndex:9]; //the youtube key
NSString * strKey = [url substringWithRange:youtubeKey] ;
Nguồn
2014-02-21 10:52:17
Bạn đã quên "https://www.youtube.com/embed/UIpuNuV23v0" chưa? – Vishwajeet