当字符串中有多个文本实例时,如何从Ruby中的字符串中删除文本

时间:2016-04-12 21:52:29

标签: ruby string

字符串示例:

"6 red cables, 4 white cables, 9 blue cables"

我想删除"电缆"所以它读取

"6 red, 4 white, 9 blue"

我查看了slicesub方法,但他们只删除了#34; cable"的第一个实例。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:7)

您可以使用String#gsub

2.2.0 :003 > "6 red cables, 4 white cables, 9 blue cables".gsub(" cables", "")
 => "6 red, 4 white, 9 blue"

答案 1 :(得分:-1)

参考(比较sub vs gsub): http://www.dotnetperls.com/sub-ruby

回答

cleand_value = "6 red cables, 4 white cables, 9 blue cables".gsub("cables", '') 
 Output "6 red , 4 white , 9 blue "

<强>解释

value = "abc abc"
# Gsub replaces all instances.
value = value.gsub("abc", "---")
puts value

Output

--- ---   

然后你可以用相同的方式删除逗号之后的所有空格。

cleaner_value = cleaned_value.gsub(", ", ",") #replaces all instances
output "6 red, 4 white, 9 blue"

或使用其他解决方案并执行

cleand_value = "6 red cables, 4 white cables, 9 blue cables".gsub(" cables", '') #notice the space before cables. May cause problems unless you know exactly the input