我是 Rails 的新手,也是正则表达式的新手。一直在四处寻找,但我被阻止了......
我有这样一个字符串:
当前:http://zs.domain.com/user_images/123456789/imageName_size.ext
通缉:http://zs.domain.com/user_images/123456789/imageName.ext
我已经做到了:
http://a0.twimg.com/profile/1240267050/logo1.png
=> 丢失所有匹配项
picture.gsub!(/_([a-z0-9-]+)/, '')
或者这个:
http://a0.twimg.com/profile_images/1240267050/logo1
=> 仅更改最后一次出现,但丢失扩展名
picture.gsub!(/_([a-z0-9-]+)**.(png|gif|jpg|jpeg)**/, '')
最佳答案
你快到了。第二个参数是将替换匹配项的字符串,您可以重新使用匹配项中的匹配组。这将达到目的:
picture.gsub!(/_([a-z0-9-]+).(png|gif|jpg|jpeg)/, '.\2')
为了适应评论中提出的附加条件:
picture.gsub!(/_([^\/]+).(png|gif|jpg|jpeg)/, '.\2')
关于ruby - Rails 3 + regex - 替换字符串的一部分,出现 1 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5171290/