Ruby 从字符串中删除重复的子字符串
我想要像这样的东西:Ruby 从字符串中删除重复的子字符串,ruby,string,Ruby,String,我想要像这样的东西: str = "hi ram hi shyam hi jhon" 您正在寻找: 如果您不知道如何修改原始字符串(示例并非如此),您可能需要使用sub和一个额外的变量来查找: str = "hi ram hi shyam hi jhon" str.sub!("hi ", "") #=> "ram hi shyam hi jhon" str.sub!("hi ", "") #=> "ram shyam hi jhon" str.sub!("hi ", "")
str = "hi ram hi shyam hi jhon"
您正在寻找:
如果您不知道如何修改原始字符串(示例并非如此),您可能需要使用sub
和一个额外的变量来查找:
str = "hi ram hi shyam hi jhon"
str.sub!("hi ", "")
#=> "ram hi shyam hi jhon"
str.sub!("hi ", "")
#=> "ram shyam hi jhon"
str.sub!("hi ", "")
#=> "ram shyam jhon"
如果您不知道如何修改原始字符串(这不是示例的样子),您可能需要使用sub
和一个额外的变量
str = "hi ram hi shyam hi jhon"
str.sub!("hi ", "")
#=> "ram hi shyam hi jhon"
str.sub!("hi ", "")
#=> "ram shyam hi jhon"
str.sub!("hi ", "")
#=> "ram shyam jhon"
要删除一个引用,请执行以下操作:
str = "hi ram hi shyam hi jhon"
要删除n个引用,请执行以下操作:
str.sub('hi', '').strip.squeeze
#⇒ "ram hi shyam hi jhon"
要删除一个引用,请执行以下操作:
str = "hi ram hi shyam hi jhon"
要删除n个引用,请执行以下操作:
str.sub('hi', '').strip.squeeze
#⇒ "ram hi shyam hi jhon"
我假设您希望删除所有重复出现的单词,而不仅仅是
“hi”
。这里有两种方法
1使用,以及
uniq的文档声明:“self
按顺序遍历,并保留第一个匹配项。”
2使用正则表达式
str = "hi shyam ram hi shyam hi jhon"
str.split.reverse.uniq.reverse.join(' ')
#=> "ram shyam hi jhon"
要删除多余的空格,请将正则表达式定义的第三行中的
\s
更改为\s+
。我假定您要删除所有重复出现的单词,而不仅仅是“hi”
。这里有两种方法
1使用,以及
uniq的文档声明:“self
按顺序遍历,并保留第一个匹配项。”
2使用正则表达式
str = "hi shyam ram hi shyam hi jhon"
str.split.reverse.uniq.reverse.join(' ')
#=> "ram shyam hi jhon"
要删除多余的空格,请将正则表达式定义的第三行中的
\s
更改为\s+
。这家伙在开玩笑说我要停药!投赞成票:)这家伙开玩笑说我不吃药!赞成票:)