2013-06-25 28 views
0

我對preg_replace具有此模式。Preg_replace YouTube視頻字符串以將代碼嵌入段落

#<a>(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/a>#x 

但是我需要改變它,對於這種情況。

<p>http://www.youtube.com/watch?v=s5bgJSdH544(<br/>)</p> 

有人可以幫我嗎?非常感謝。

+0

究竟是什麼你想怎麼辦? – anubhava

回答

0

這工作:

$string = '<p>http://www.youtube.com/watch?v=s5bgJSdH544(<br/>)</p>'; 

if(preg_match('#<(?:a|p)>(?:href="https?://|http://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/(?:a|p)>#x', $string)){ 
    echo 'Match found.'; 
}else{ 
    echo 'No match found.'; 
} 
  • 在開幕取代了一個,並關閉錨標記(?:A | P)
  • 增加了一個或條件,第二組:(:HREF? =「https://開頭| HTTP:??//)
  • 的*近表達年底已經採取加(<br/>)部分的護理
+0

它不適合我。你能幫忙處理字符串只在段落中的情況嗎?謝謝! – honzahommer

+0

我更新了我的答案,以顯示返工表達式的工作示例。 – Drew