我有图像链接
link = "https://ecs7.sandal.net/img/cache/500-square/product-10/2019/6/16/719184/719184_de07958e-9e6b-491a-ae61-2291220be643_1080_1080.jpg"/img/cache后的路径是图像的大小,大小为500平方。
链接是动态的。但是大小总是在缓存/路径之后。
而其余的链接在大小路径之后是产品文件夹,所以可以忽略它。
500平方对于我想要的图像来说是小的。所以我得换到900或者其他尺寸的。
所以链接将如下所示
https://ecs7.sandal.net/img/cache/900/product-10/2019/6/16/719184/719184_de07958e-9e6b-491a-ae61-2291220be643_1080_1080.jpg如何用红宝石线代替500平方到900平方?
谢谢
发布于 2021-02-11 14:11:58
可以在"/“上拆分字符串。
link_list = link.split("/") 然后你就可以代替“500平方”了。
link_list[link_list.index("500-square")] = "900" 然后将它与"/“连接起来。
link = link_list.join("/") 发布于 2021-02-11 14:59:31
替换整个子字符串
有很多方法可以做到这一点,这取决于您的数据有多大的变化,以及它的良好结构。但是,如果您知道您的链接变量总是希望替换子字符串500-square,那么您可以简单地使用String#sub替换该值。例如:
# replace entire substring
link.sub '500-square', '900'
#=> "https://ecs7.sandal.net/img/cache/900/product-10/2019/6/16/719184/719184_de07958e-9e6b-491a-ae61-2291220be643_1080_1080.jpg"如果您不想弄乱正则表达式,这就是方法。此外,如果可能有其他可能的匹配,则仍然可以将表达式锚定在URI路径的一部分。例如:
# anchor expression with slashes
link.sub '/500-square/', '/900/'
#=> "https://ecs7.sandal.net/img/cache/900/product-10/2019/6/16/719184/719184_de07958e-9e6b-491a-ae61-2291220be643_1080_1080.jpg"如果您需要键入其他内容,例如URL或其他属性中的位置,那么您可能需要一个更复杂的解决方案。不过,上面的代码肯定会解决发布的用例。
https://stackoverflow.com/questions/66156009
复制相似问题