Ruby-如何删除字符串中具有特定模式的所有单词
例如,字符串是“我今天很高兴”。我想删除所有包含字母“a”的单词。因此,输出应该是“I very”。我该怎么做呢?您可以尝试拆分每个单词,删除带有字母“a”的单词,然后将这些单词连接在一起,如下所示:Ruby-如何删除字符串中具有特定模式的所有单词,ruby,Ruby,例如,字符串是“我今天很高兴”。我想删除所有包含字母“a”的单词。因此,输出应该是“I very”。我该怎么做呢?您可以尝试拆分每个单词,删除带有字母“a”的单词,然后将这些单词连接在一起,如下所示: "I am very happy today".split.reject{ |word| word.include?("a") }.join(" ") 与@Sam的答案类似,只有较小的:)使用鲜为人知的 #grep的反向版本。返回枚举中非模式==元素的每个元素的数组 下面是一个使用正则表达式的示
"I am very happy today".split.reject{ |word| word.include?("a") }.join(" ")
与@Sam的答案类似,只有较小的:)使用鲜为人知的 #grep的反向版本。返回枚举中非模式==元素的每个元素的数组
下面是一个使用正则表达式的示例:
- 词界
- 字母数字字符
- a
- 字母数字字符
- 词界
"I am very happy today".gsub(/\b\w*a\w*\b/i, '').strip.gsub(/\s+/, ' ')
不过,
split
和join
的答案更清晰。我预见到@mudasobwa会出现,并发布一个带有负面外观的聪明正则表达式解决方案,或者其他东西。:)你是如此的好!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!帮我很多忙!!!!!!!!!!你应该说你是否想在要保留的单词之间保留额外的空格。例如,假设,str=“I_am\u very\uuu\uu grouchy\u today”
,其中空格由下划线表示(因此在注释中去掉额外的空格)。你想回答“我非常不高兴”还是“我非常不高兴”,你看到了我的问题,但选择不回答。为什么?非常感谢您的回复^ ^谢谢您的解决方案^_^
"I am very happy today".gsub(/\b\w*a\w*\b/i, '').strip.gsub(/\s+/, ' ')