使用gsub替换

时间:2011-06-05 12:23:58

标签: ruby regex

我在用另一个字符串替换部分字符串时遇到了一些问题。

我希望将此字符串"this-is-a-string.jpg"替换为"this-is-a-hash.jpg"string值可以是任何值。

这是我到目前为止。

str = "this-is-a-string.jpg"
str.gsub(/([a-z]+)[^\.]+?$/i, "hash")
# => "this-is-a-string.hash"

1 个答案:

答案 0 :(得分:2)

我和rubular一起玩了,如果你不介意在替换时手动添加一个点,我想出了一个正则表达式。 这就是我想出来的

"this-is-a-string.jpg".gsub(/\w+\./, 'hash.')

所以我猜你可以创建一个简单的函数来代替它,就像

一样
def replace_string(string_to_replace, replacement)
  string_to_replace(/\w+\./, "#{replacement}.")
end

在ruby 1.9.2中我设法提取“字符串”这个词,但我不知道这对你有用。

  /[-\w]+\-(?<word>(\w+))\.\w+/ =~ "this-is-a-string.jpg"
=> 0
  word
=> "string"

我希望我能帮助你,并提供你需要的信息