2012-02-02 29 views
0

試圖在堆棧上找到答案溢出但我是一個完整的RegEx noob!正則表達式只有當URL不以http://開頭時,用字符串替換url的一部分

所有我需要(如果可能的話)是匹配在某些HTML PDF文件的URL,如果它不與http://開始添加/content/的開始,如果它不與http://無能爲力開始。

+1

這不需要正則表達式。你可以用你選擇的語言來檢查URL的開頭是否存在文本「http://」,如果沒有,則在其中預先加入「content /」。 – anubhava 2012-02-02 20:27:05

+0

你還沒有指定你正在使用的平臺,你想用JavaScript或服務器端來做到這一點? – 2012-02-02 21:02:01

回答

0

你想要的正則表達式可能是

http://add/content/\S+?\.pdf 

它說,必須以「http://添加/內容/」,直到它在打一個PDF,然後可以有任何事情是不是空白結束。 根據您使用的語言,您需要以不同的方式應用。例如在PHP中,它將是

preg_match_all('|http://add/content/\S+?\.pdf|',$html,$matches); 
if(count($matches)) { 
    //do stuff with the matches in the $matches array 
} else { 
    //there were no matches of that form 
} 
+0

謝謝你的回答:) – 2012-02-29 22:40:34

0

假設你想用javascript做到這一點。

var links = document.getElementsByTagName("a"); 
for(var i = 0; i < links.length; i++){ 
    var link = links[i]; 
    var href = link.getAttribute("href"); 
    if(!/^http/.test(href)) 
    { 
     link.setAttribute("href", "/content/" + href); 
    } 
} 
+0

感謝您的代碼 - 我想做服務器端,以消除需要在客戶端啓用JS。謝謝你:) – 2012-02-29 22:40:22