Я пытаюсь написать простое регулярное выражение, которое будет определять теги объектов и игнорировать любые совпадения, содержащие слова "youtube или" youtu.be ".
Я пробовал
<object .*?>.+?(?=youtube|youtu\.be).+?<\/object>
Который успешно находит теги объектов с этими словами в них, но обратное не работает и вместо этого просто возвращает все совпадения объектов.
<object .*?>.+?(?!youtube|youtu\.be).+?<\/object>
Есть идеи, что мне здесь не хватает?
EDIT: Он должен просматривать источник, похожий на:
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
Затем выберите объектные блоки, которые не содержат слов, чтобы я мог заменить их.
правильное, но не совершенное регулярное выражение будет:
<object.*>.*(youtube|youtu\.be).*<\/object>
Кстати. http://www.rubular.com/ - хороший сайт для проверки регулярных выражений