我需要从 youtube 嵌入 url 获取 youtube id/url。没有太多正则表达式(不必是正则表达式)经验,我很难从嵌入 url 中获取 url。有谁最简单的方法是什么?
问问题
1841 次
1 回答
0
您的示例似乎不是完整的 youtube 视频 ID。据我了解,youtube 视频 ID 的长度为 11 个字符。
也就是说,我将您的示例嵌入式 URL 修改为 11 个字符(通过在末尾添加 1)并使用 XML 和您的问题评论中提到的正则表达式(stackoverflow.com/a/1773972/56778)的组合请执行下列操作:
var xmlFrag = @"<object width='530' height='319'>
<param name='movie' value='**http://www.youtube.com/v/973r7347&hl=en_US&fs=1&rel=0**' />
<param name='allowFullScreen' value='true' />
<param name='allowscriptaccess' value='always' />
<embed src='http://www.youtube.com/v/973r7347111&hl=en_US&fs=1&rel=0' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='530' height='319'></embed>
</object>";
var doc = new XmlDocument();
doc.LoadXml(xmlFrag);
var match = Regex.Match(doc.SelectSingleNode("/object/embed").Attributes["src"].Value,
"^http://(?<domain>([^./]+\\.)*youtube\\.com)(/v/|/watch\\?v=)(?<videoId>[A-Za-z0-9_-]{11})", RegexOptions.IgnoreCase);
String youtubeId;
if (match.Success)
youtubeId = match.Groups[4].Value;
于 2012-06-21T15:05:44.720 回答