1

假设我有一些带有这样几个标签的文本:

[twitter:jpunt]

我想把它们替换成这样的:

<a href="http://twitter.com/jpunt">@Jpunt</a>

我怎么能在 Ruby 中做到这一点?我已经研究了几个小时的正则表达式,结果很沮丧。任何人?

4

2 回答 2

1

这应该做的工作:

initial = "[twitter:jpunt]"
link = initial.gsub(/\[twitter:(\w+)\]/i, '<a href="http://twitter.com/\1">@\1</a>')
于 2012-07-20T19:50:01.480 回答
0

是一行代码(点击这里测试此代码)>>

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>' }
于 2012-07-20T20:24:38.697 回答