第一次在stackvoverflow上,所以希望我把这个贴得正确,尽可能清楚。如果需要的话,请把这个拆开,让我知道如何在将来发布更清晰的问题。
新来的鲁比在这里练习。
我想知道如何用ruby替换字符串中的实例。
例如:
说我有:

string = 'richard julie richard julie sam letty sam letty'

如何替换字符串中不等于“richard”或“julie”的任何实例并再次替换为单词richard?
因此,新字符串将在所述ruby方法实现后读取:
string = 'richard julie richard julie richard richard richard richard

我尝试过使用gsub,比如:
def string_replace(str)
  if str.include?("sam" || "letty")
    str.gsub! "sam" && "letty", "richard"
  end
end

我已经意识到这次尝试有很多问题;
使用布尔运算符时,只计算一个参数!有人能解释一下原因吗?这也意味着只有一个词被替换,当我需要“sam”和“letty”都被替换为“richard”时。
这种尝试也非常有限,因为它只会取代那些字符串sam&letty出现的实例。有没有更好的方法来覆盖任何不等于richard或julie的单词,以便再次替换为richard?
如果能在这方面给予帮助,我们将不胜感激。
谢谢你,新年快乐。
P.S.如何使用后勾号转义,以便打印灰色块来整理它?谢谢

最佳答案

我认为这是一个可以做你想做的事情:

string = 'richard julie richard julie sam letty sam letty'

string.gsub /\b(?!(richard|julie))\w+/, 'richard'

gsuba word break\b是not?!(richard|julie)richard的alook ahead。所以这基本上是一个分词符和其后的字母的匹配,这些字母不匹配julie也不匹配richard

关于ruby - Ruby-如果实例不匹配,请替换字符串中的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41409614/

10-10 07:17