Ruby 在许多地方剪线

Ruby 在许多地方剪线,ruby,Ruby,我怎样才能在许多地方剪线。我有这样的字符串: @abc = 'http://somesite.com/abcdrer/media/picture/abc.jpb' 我知道我能做到: @str = @abc.index('/media') 所以这将返回“/media”开始的索引(对吗?)。现在我必须将索引从0删除到@str返回的索引。如何从字符串中删除所选索引?拆分字符串并获取数组的最后一个元素: @str = @abc.split("/media").last 拆分字符串并获取数组的最后

我怎样才能在许多地方剪线。我有这样的字符串:

@abc = 'http://somesite.com/abcdrer/media/picture/abc.jpb'
我知道我能做到:

@str = @abc.index('/media') 

所以这将返回“/media”开始的索引(对吗?)。现在我必须将索引从0删除到@str返回的索引。如何从字符串中删除所选索引?

拆分字符串并获取数组的最后一个元素:

@str = @abc.split("/media").last

拆分字符串并获取数组的最后一个元素:

@str = @abc.split("/media").last

正则表达式在这里会做得更好。从/媒体到结尾(0到索引为“已删除”)


正则表达式在这里会做得更好。从/媒体到结尾(0到索引为“已删除”)

您可以使用正则表达式:

@str = @abc[%r{/media.+}]
 => "/media/picture/abc.jpb"
您可以使用正则表达式:

@str = @abc[%r{/media.+}]
 => "/media/picture/abc.jpb"

您希望输出的具体内容是什么
“/media/picture/abc.jpb”
?我想删除“/media”之前的所有内容。您希望输出的具体内容是什么
“/media/picture/abc.jpb”
?我想删除“/media”之前的所有内容使用
%r
创建正则表达式,而不是裸
/
。这将帮助您避免“牙签倾斜综合症”:
%r{/media.+}
。得到适当的赞赏和认可。使用
%r
创建正则表达式,而不是裸
/
。这将帮助您避免“牙签倾斜综合症”:
%r{/media.+}
。我们对此表示赞赏并予以合并。使用%r创建正则表达式而不是bare/。这将帮助你避免“牙签倾斜综合症”:
%r{/media.*$}
。而且,正如@sawa所说,
$
是多余的,因此:
%r{/media.*}
。使用%r来创建正则表达式,而不是bare/。这将帮助你避免“牙签倾斜综合症”:
%r{/media.*$}
。而且,正如@sawa所说,
$
是多余的,这使得:
%r{/media.*}
。OP希望从“/media”一直到最后。这将返回“/picture/abc.jpb”。OP希望从“/media”一直到最后。返回“/picture/abc.jpb”。