Ruby 替换为使用正则表达式结果
假设我有一些文字,上面有两个标签,如下所示:Ruby 替换为使用正则表达式结果,ruby,regex,Ruby,Regex,假设我有一些文字,上面有两个标签,如下所示: [twitter:jpunt] <a href="http://twitter.com/jpunt">@Jpunt</a> 我想将其替换为以下内容: [twitter:jpunt] <a href="http://twitter.com/jpunt">@Jpunt</a> 我怎么能用Ruby做这个?我研究正则表达式已经有几个小时了,结果是非常沮丧。有人吗?这应该可以完成这项工作: initi
[twitter:jpunt]
<a href="http://twitter.com/jpunt">@Jpunt</a>
我想将其替换为以下内容:
[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>')
initial=“[twitter:jpunt]”
link=initial.gsub(/\[twitter:(\w+)\]/i',)
这应该可以完成以下工作:
initial = "[twitter:jpunt]"
link = initial.gsub(/\[twitter:(\w+)\]/i, '<a href="http://twitter.com/\1">@\1</a>')
initial=“[twitter:jpunt]”
link=initial.gsub(/\[twitter:(\w+)\]/i',)
这是单行代码(单击以测试此代码)>>
output=input.gsub(/\[([^:]+):([^\]]+)\]/){
'' }
以上代码适用于任何标记名。如果您只想允许使用twitter,请进行修改:
output = input.gsub(/\[twitter:([^\]]+)\]/) {
'<a href="http://twitter.com/' + $1 + '">@' + $1.capitalize + '</a>' }
output=input.gsub(/\[twitter:([^\]]+)\]/){
'' }
这是单行代码(单击以测试此代码)>>
output=input.gsub(/\[([^:]+):([^\]]+)\]/){
'' }
以上代码适用于任何标记名。如果您只想允许使用twitter,请进行修改:
output = input.gsub(/\[twitter:([^\]]+)\]/) {
'<a href="http://twitter.com/' + $1 + '">@' + $1.capitalize + '</a>' }
output=input.gsub(/\[twitter:([^\]]+)\]/){
'' }
不需要正则表达式来替换常量。只需搜索和替换。不需要正则表达式来替换常量。只需搜索并替换。我看不出这个答案有什么问题。它唯一做不到的就是将句柄大写。无论如何,我认为它不应该这样。所以我的+1:)将手柄资本化并不是重点。谢谢你的回答!我看不出这个答案有什么不对。它唯一做不到的就是将句柄大写。无论如何,我认为它不应该这样。所以我的+1:)将手柄资本化并不是重点。谢谢你的回答!非常感谢您提供了完整的示例。在所有的科技产品中,我每次都会关闭regexp。非常感谢您提供的完整示例。在所有的科技产品中,每次我都会关闭regexp。