如何创建一个正则表达式,通过ruby'替换字符串中的所有匹配项;什么是gsub?

如何创建一个正则表达式,通过ruby'替换字符串中的所有匹配项;什么是gsub?,ruby,regex,gsub,Ruby,Regex,Gsub,我想知道为什么我的正则表达式不能工作,我需要实现以下行为: "aoaoaoaoaoao".gsub!(/o/, 'e') 以上内容将正确地告诉我:aeaeaeaeae 现在,真实情况看起来是这样的: "Today I ate a ((noun)), and it tasted ((adjective))".gsub!(/\(\(.*\)\)/, "word") 结果是:“今天我吃了一个词”,但我希望它能回到我的脑海: “今天我吃了一个单词,它尝了一口” 很明显,我的正则表达式有问题,(对吗?

我想知道为什么我的正则表达式不能工作,我需要实现以下行为:

"aoaoaoaoaoao".gsub!(/o/, 'e')
以上内容将正确地告诉我:aeaeaeaeae

现在,真实情况看起来是这样的:

"Today I ate a ((noun)), and it tasted ((adjective))".gsub!(/\(\(.*\)\)/, "word")
结果是:“今天我吃了一个词”,但我希望它能回到我的脑海: “今天我吃了一个单词,它尝了一口”

很明显,我的正则表达式有问题,(对吗?),因为它只替换一次。你们能告诉我怎么让它替换所有的火柴吗?(就像我的第一个例子)


非常感谢

您需要以下正则表达式:

/\(\(.*?\)\)/

*?
使用尽可能少的字符来获得匹配。所以问题不在于正则表达式被替换了一次,而是它匹配了字符串的很大一部分-从第一个
到最后一个

太棒了!非常感谢。我不知道Regex如果不使用?操作人员荣誉有关regex签出的视觉反馈