【发布时间】:2011-12-09 19:25:45
【问题描述】:
我正在尝试编写一个简单的正则表达式,它将定位对象标签并忽略任何包含“youtube 或”youtu.be”字样的匹配项。
我试过了
<object .*?>.+?(?=youtube|youtu\.be).+?<\/object>
它成功地找到了包含这些单词的对象标签,但反过来不起作用,而是只返回所有对象匹配项。
<object .*?>.+?(?!youtube|youtu\.be).+?<\/object>
知道我在这里缺少什么吗?
编辑: 它必须查看类似于以下内容的来源:
fdgfdgfdg
<object width="560" height="315">
<param name="movie" value="http://www.youtube.com/v/-F_ke3rxopc?version=3&hl=en_US">
</param>
<param name="allowFullScreen" value="true">
</param>
<param name="allowscriptaccess" value="always">
</param>
<embed src="http://www.youtube.com/v/-F_ke3rxopc?version=3&hl=en_US" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true">
</embed>
</object>
fdgfdgdg
<object width="400" height="300">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=31589401&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=00adef&fullscreen=1&autoplay=0&loop=0" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id=31589401&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=00adef&fullscreen=1&autoplay=0&loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300">
</embed>
</object>
fdgdgg
然后挑选出不包含单词的对象块,以便我可以对它们进行替换。
【问题讨论】:
-
在选择解决方案时,请记住非 youtube 嵌入的 URL 可以轻松包含
&youtube=false或任何数量的获取字符串 'youtube' 的方法。
标签: javascript regex youtube