如何在Ruby中替换字符串周围的字符?

如何在Ruby中替换字符串周围的字符?,ruby,parsing,replace,bbcode,substitution,Ruby,Parsing,Replace,Bbcode,Substitution,我正试图编写一个ruby脚本,将我编写的一种小型标记语言转换成HTML,但我不知道如何解析链接。它基本上是BBCode的精简版本,因此,例如,如果有人输入[i]{text}[/i],我就使用[i]{text}[/i].gsub('[i]','').gsub('[/i]','。不过,我不知道如何解析链接。我如何打开[url=website.com]站点[/url]进入?我没有使用预制的BBCode解析器,因为有一些不同的标记,我不希望人们非常天真地使用一些标记,例如[img][/img]: s.g

我正试图编写一个ruby脚本,将我编写的一种小型标记语言转换成HTML,但我不知道如何解析链接。它基本上是BBCode的精简版本,因此,例如,如果有人输入
[i]{text}[/i]
,我就使用
[i]{text}[/i].gsub('[i]','').gsub('[/i]','
。不过,我不知道如何解析链接。我如何打开
[url=website.com]站点[/url]
进入
?我没有使用预制的BBCode解析器,因为有一些不同的标记,我不希望人们非常天真地使用一些标记,例如
[img][/img]

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

HTML注入将非常容易。这一点(编写一个合适的解析器)仍然适用于您正在做的事情。

我同意使用正则表达式来kch,但是如果您想像您一直在做的那样使用gsub()来解决它

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

似乎只允许您指定要使用的特定标记,为什么不使用它?@AndrewMarshall我不知道。我将使用它。