如何使用dart正则表达式从视频URL中提取YouTube视频ID?
示例网址
port 8181
或
+--- host --------> strapi application on localhost:8080 | users --> nginx --|--- host/second-project ---> strapi application on localhost:8181 | +--- host/mail ---> strapi application on localhost:8282
返回
https://www.youtube.com/watch?v=SEkUienM2oY&t=1265s
对我有用
https://m.youtube.com/watch?v=SEkUienM2oY&t=1265s
但是如何使用Regex做到这一点?
答案 0 :(得分:3)
没有正则表达式,我希望它能完美运行 将此依赖项添加到您的pubspec.yaml文件中
youtube_player_flutter: ^6.1.0+4
try {
videoIdd = YoutubePlayer.convertUrlToId("your url here");
print('this is '+videoId);
} on Exception catch (exception) {
// only executed if error is of type Exception
print('exception');
} catch (error) {
// executed for errors of all types other than Exception
print('catch error');
// videoIdd="error";
}
答案 1 :(得分:1)
答案 2 :(得分:1)
pub 上有包获取 id youtube_parser
youtube_parser
从各种 YouTube 网址中提取 ID 的极简库
import 'package:youtube_parser/youtube_parser.dart';
String foo = getIdFromUrl('https://www.youtube.com/watch?v=CBWlfU_na-2');
// returns 'CBWlfU_na-2'
String bar = getIdFromUrl('https://www.notyoutube.com/watch?v=CBWlfU_na-2');
// returns null
这也是 Uri.parse 现在最终使用的内容
答案 3 :(得分:0)
此类正则表达式也可以解析YouTube视频,使它们无需定时
.*\?v=(.+?)($|[\&])
完整的dart示例:
final regex = RegExp(r'.*\?v=(.+?)($|[\&])', caseSensitive: false, multiLine: false);
final url = [PASTE_YOUTUBE_URL_HERE];
if (regex.hasMatch(text)) {
final videoId = regex.firstMatch(text).group(1);
print(videoId);
} else {
print("Cannot parse $url");
}
答案 4 :(得分:0)
gb = data.groupby('Country Code')
explore = gb.count()
explore.describe()