這條簡單的正則怎麼寫。。
PHP code
我想匹配出 href= src= 這些如果不是以http開頭就替換裡面的內容, 是以http開頭的就不替換
上面的正則哪裡錯了。。。。
------解決方案--------------------
你試下,我沒發現問題
PHP code
$pat='/(src\=[\"\']?http)+|(href\=[\"\']?http)+/';$str = 'src="http://www" ';if(preg_match($pat,$str)){ echo "匹配成功";}else{ echo "失敗";}
------解決方案--------------------
方括弧中的內容是一個個並列的字元,不是你這樣成組使用的
你可能需要的是這樣
PHP code
$pat = '/src="(?!http).*"/iU';$str = 'src="http://www" src="ftp://www"';echo preg_replace($pat, 'xxx', $str);
------解決方案--------------------
像這樣?非http:,http://www.開頭的,補全URL?
PHP code
$testurls = array( 'http://www.freenewspos.com/italia/creativecommons-photo-album#!POS__calcio&num=0', 'freenewspos.com/italia/creativecommons-photo-album#!POS__NBA&num=0', 'www.freenewspos.com/italia/creativecommons-photo-album#!POS__Twilight&num=0'); foreach($testurls as $singleurl){ echo preg_replace('#(?:http(s)?://)?(?:www\.)?(.+)#', 'http\1://www.\2', $singleurl).'
';}