在rails中我想写一些代码来改变这个url字符串
https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.jpg
到
https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.preview.png
我应该使用正则表达式来改变它吗?
我是 Regexp 的新手,任何人都可以告诉我如何做,以及如何学习这些东西
谢谢
最佳答案
如果扩展名是固定长度的,你最好使用 string slicing .
url = "https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.jpg"
print url[0..-5] + ".preview" + url[-4..-1]
输出
https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.preview.jpg
或者如果你的扩展是可变长度的,你可以使用 rindex()
来找到扩展的开始。
url = "https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.jpeg"
dot_index = url.rindex(".")-1
print url[0..dot_index] + ".preview" + url[dot_index+1..-1]
输出
https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.preview.jpeg
如果你必须使用正则表达式,那么这样做:
url = "https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.jpeg"
print url.gsub(/\.(\w{2,4})$/, ".preview.\\1")
输出
https://img.skitch.com/20101222-kg5chjx4jetgcdeaug46hi6jpk.preview.jpeg
关于ruby-on-rails - URL 操作 : http://example. com/foo.jpg -> http ://example. com/foo.preview.png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518934/