2014-10-10 31 views
0

的第一部分鑑於簡單的正則表達式替換URL

  • http://localhost:3000/something
  • http://www.domainname.com/something
  • https://domainname.com/something

如何選擇/something之前無論是與staticpages取代它呢?

輸入URL是request.referer的結果,而是因爲你不能render request.referer(我不想redirect_to),我試圖用controller/action手動構造相應的模板,其中action總是路線,我只需要用控制器staticpages替換域。

回答

1

你可以使用這樣的正則表達式:

(https?://)(.*?)(/.*) 

Working demo

enter image description here

正如你可以在置換部看到,你可以使用捕獲組,並連接了字符串你想要生成所需的網址。

正則表達式的想法是捕獲域之前和之後的字符串,並使用\1 + staticpages + \3

如果要更改協議爲ftp,您可以用捕獲組指數播放和使用替換字符串:

ftp://\2\3 

所以,你會:

ftp://localhost:3000/something 
ftp://www.domainname.com/something 
ftp://domainname.com/something 
+0

其實我需要替換'https://'或'http://',我該怎麼做? – james 2014-10-10 19:51:44

+0

@james我發佈的正則表達式有3組(1-協議,2-域,3-剩下的)。如果你想取代你可以使用捕獲組索引的協議,你可以這樣做:'statictext \ 2 \ 3'。我發佈了工作演示鏈接,但你可以查看我在這裏說的http://regex101.com/r/fV8nC7/2 – 2014-10-10 19:54:39