假设我有一些带有这样几个标签的文本:
[twitter:jpunt]
我想把它们替换成这样的:
<a href="http://twitter.com/jpunt">@Jpunt</a>
我怎么能在 Ruby 中做到这一点?我已经研究了几个小时的正则表达式,结果很沮丧。任何人?
这应该做的工作:
initial = "[twitter:jpunt]"
link = initial.gsub(/\[twitter:(\w+)\]/i, '<a href="http://twitter.com/\1">@\1</a>')
是一行代码(点击这里测试此代码)>>
output = input.gsub(/\[([^:]+):([^\]]+)\]/) {
'<a href="http://' + $1 + '.com/' + $2 + '">@' + $2.capitalize + '</a>' }
上面的代码适用于任何标签名称。如果您只想允许twitter ,请进行修改:
output = input.gsub(/\[twitter:([^\]]+)\]/) {
'<a href="http://twitter.com/' + $1 + '">@' + $1.capitalize + '</a>' }