gpt4 book ai didi

c# - C#正则表达式过滤YouTube视频的ID

转载 作者:行者123 更新时间:2023-12-03 06:05:57 25 4
gpt4 key购买 nike

我知道也有类似的问题,但实际上我还没有看到覆盖所有可能的YouTube网址的问题。
我已经拥有的Regex几乎涵盖了除2种可能情况之外的所有内容。(?<=(https?\:\/\/)?(m\.)?(www\.)?(youtube\.com|youtube\.de|youtu\.?be|youtube-nocookie\.com)/(.*?)(/|embed|vi?=|\?vi?=|watch\?|watch\?vi?\=?|watch\?v%|a=|u/1))([A-Za-z0-9_-]{11})我会过滤URL的开头,直到.com之后。直到11个字符的ID为止,链接中的内容并不重要。由于[ID]除[ID]之外还有[A-Za-z0-9 _-] {11}的其他可能匹配项,因此我为ID包含了所有可能的前缀(/ | embed | vi ...)。
现在正则表达式不起作用的2种可能情况是
https://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o"

http://youtu.be/-wtIMTCHWuI
第一个是因为在/(Ingrid ...)后面有一个11个字符的字符串
第二个是因为其他所有URL在ID之前都有多个/。
我不确定该如何解决。
对于用户URL,我尝试(?!。(user /(.?)/))排除用户/无论/之后的所有内容,但这只会删除整行的匹配项,即使ID和用户名。
我知道该链接实际上没有ID,因为它链接到个人资料,问题是它向我展示了除正则表达式过滤的ID之外还有其他字符串的可能性
对于第二个,我不知道如何解决它,因为在我看来,每个其他URL中都需要2 /。
这是我正在使用的 list
https://gist.github.com/rodrigoborgesdeoliveira/987683cfbfcc8d800192da1e73adc486
带有额外的iframe用于测试<iframe width="560" height="315" src="https://www.youtube.com/embed/BKapPQxcR3Q" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>非常感谢

最佳答案

请尝试以下正则表达式。捕获的组1将具有视频ID。

(?:(?:(?<=[vi])(?:=|%3D)|\/))([A-Za-z0-9_-]{11})[&?\s#%\"]
Demo

关于c# - C#正则表达式过滤YouTube视频的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63707805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com