2012-05-29 32 views
0

我想寫一個ruby腳本來轉化我寫入HTML的小標記語言,但我無法弄清楚如何解析鏈接。它基本上是一個縮小版的BBCode,所以例如,如果有人輸入[i]{text}[/i],我使用[i]{text}[/i].gsub('[i]','<i>').gsub('[/i]','</i>'。但我無法弄清楚如何解析鏈接。我如何將[url=website.com]site[/url]變成<a href="website.com">site</a>?我沒有使用預製的BBCode解析器,因爲有幾個標籤是不同的,我不希望人們使用一些標籤,如[img][/img]如何在Ruby中用字符串替換字符?

+2

[BB-紅寶石它在你的頭上](http://bb-ruby.rubyforge.org/)似乎只允許您指定要使用的某些標記,爲什麼不使用它呢? –

+0

@AndrewMarshall我不知道。我會用它來代替。 – Orcris

回答

0

很天真:

s.gsub(/\[url=(.*?)\](.*?)\[\/url\]/) { "<a href='#{$1}'>#{$2}</a>" } 

HTML注入將是相當容易的。點here(編寫適當的解析器)仍然適用於您正在做的事情。

0

我用正則表達式與KCH同意,但如果你想換用GSUB()就像你一直在做...

s = "[url=website.com]site[/url]" 
s2 = s.gsub('[url=','<a href="').gsub('[/url]','</a>').gsub(']','">')