2011-12-09 38 views
0

我試圖寫一個簡單的正則表達式,將定位對象標記和忽略包含單詞「YouTube或‘youtu.be任何比賽’JavaScript的正則表達式:更換非YouTube嵌入

我試過

<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&amp;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&amp;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&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /> 
    <embed src="http://vimeo.com/moogaloop.swf?clip_id=31589401&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"> 
    </embed> 
</object> 
fdgdgg 

然後挑選出不包含這樣的話比我可以運行一個更換他們的對象塊。

+1

當選擇一個解決方案時,請記住非youtube嵌入的網址可以很容易包含'&youtube = false'或任意數量的方式來獲取字符串'youtube'。 – evan

+0

很棒。謝謝! – TGC79

回答

0

有效的,但並不完美的正則表達式是:

<object.*>.*(youtube|youtu\.be).*<\/object> 

BTW。 http://www.rubular.com/是一個不錯的網站來檢查正則表達式

相關問題