从Ruby中的字符串中有选择地删除单词的出现?

时间:2016-06-05 13:03:48

标签: ruby string

例如:

str = "The quick the brown the fox the jumped the over the lazy the dog."

在这里,我想知道如何做以下两件事:

  1. 仅删除第三个“the”
  2. 删除每三分之一“the”

1 个答案:

答案 0 :(得分:1)

正如OP要求的那样,代码如下:

  • 不会将"The"计为"the"
  • 不会删除删除"the"时剩余的额外空格。

使用此正则表达式:

re = /((?:\bthe\b.*?){2})\bthe\b/

仅删除第三个"the"

str.sub(re, '\1')
# => "The quick the brown the fox  jumped the over the lazy the dog."

删除每三分之一"the"

str.gsub(re, '\1')
# => "The quick the brown the fox  jumped the over the lazy  dog."