我正在尝试编写一个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]
。
答案 0 :(得分:0)
非常天真:
s.gsub(/\[url=(.*?)\](.*?)\[\/url\]/) { "<a href='#{$1}'>#{$2}</a>" }
HTML注入非常简单。点here(编写适当的解析器)仍然适用于您正在做的事情。
答案 1 :(得分:0)
我同意 kch 使用正则表达式,但是如果您想使用 gsub()来包围它,就像您一直在做的那样...... < / p>
s = "[url=website.com]site[/url]"
s2 = s.gsub('[url=','<a href="').gsub('[/url]','</a>').gsub(']','">')