字符串替换Ruby正则表达式

字符串替换Ruby正则表达式,ruby,regex,string,gsub,Ruby,Regex,String,Gsub,我需要用序列替换字符串;我正在使用gsub方法 说 name=汤姆 这在文本中显示为$name,我需要用Tom替换$name 现在,它正在用Tom替换唯一的名称,而不是用Tom替换$name。你能告诉我gsub会是什么样子吗 str.gsub('$(name)', 'Tom') 或者,使用regexp str.gsub(/\$\(name\)/, 'Tom') 或者,使用regexp str.gsub(/\$\(name\)/, 'Tom') 不要忘记正确地逃避事情: string = "

我需要用序列替换字符串;我正在使用gsub方法

name=汤姆

这在文本中显示为$name,我需要用Tom替换$name

现在,它正在用Tom替换唯一的名称,而不是用Tom替换$name。你能告诉我gsub会是什么样子吗

str.gsub('$(name)', 'Tom')
或者,使用regexp

str.gsub(/\$\(name\)/, 'Tom')
或者,使用regexp

str.gsub(/\$\(name\)/, 'Tom')

不要忘记正确地逃避事情:

string = "My name is $(name)"

string.gsub(/\$\(name\)/, "Tom")
# => My name is Tom
当然,您可以轻松地使其更通用:

substs = {
  name: "Tom"
}

string.gsub(/\$\((\w+)\)/) do |s|
  substs[$1.to_sym]
end

不要忘记正确地逃避事情:

string = "My name is $(name)"

string.gsub(/\$\(name\)/, "Tom")
# => My name is Tom
当然,您可以轻松地使其更通用:

substs = {
  name: "Tom"
}

string.gsub(/\$\((\w+)\)/) do |s|
  substs[$1.to_sym]
end

也许可以展示你的gsub?另外,为什么要替换name而不是$name?my_散列包含name=>Tom对应。gsub是行。gsub$2,我的杂凑。我从给我的正则表达式中得到2美元name@SergioTulentsev:我需要替换$name。现在我得到的输出是$Tom,而不仅仅是TomShow你的gsub,也许?另外,为什么要替换name而不是$name?my_散列包含name=>Tom对应。gsub是行。gsub$2,我的杂凑。我从给我的正则表达式中得到2美元name@SergioTulentsev:我需要替换$name。现在,我得到的输出是$Tom,不仅仅是TomHi,您可以向我展示第二个代码的实现吗。我对ruby很陌生,想知道如何使用它。你是说解释一下?这是一个捕获类似单词的值\w+,并使用它在散列中查找要替换的内容的函数。一开始这可能会有很多东西需要理解,但是一点一点地理解,你就会更好地理解它。像这样的技术可以用很少的代码做很多工作。如果你有一个很好的Ruby参考,那会有很大帮助。嗨,你能给我看看你的第二个代码的实现吗。我对ruby很陌生,想知道如何使用它。你是说解释一下?这是一个捕获类似单词的值\w+,并使用它在散列中查找要替换的内容的函数。一开始这可能会有很多东西需要理解,但是一点一点地理解,你就会更好地理解它。像这样的技术可以用很少的代码做很多工作。如果你有一个好的Ruby参考,那会有很大的帮助。这是一个聪明的方法,虽然希望原始版本中没有%{…}内容。谢谢,但我不认为我能够使用它,因为我不知道我将要解析的数据中是否会遇到%{…}这是一个聪明的方法,尽管希望没有%{…}内容出现在原件中。谢谢,但我不认为我能够使用它,因为如果我可能遇到%{…},我将在分析的数据中不知道