Ruby删除以'。'结尾的单词

时间:2013-02-10 09:36:42

标签: python ruby

我希望删除一系列名称中的所有中间名首字母。我发现我可以用Python做到这一点,所以我想在Rruby中尝试一下。在Python中,我可以使用endswith命令删除 csv文件中的所有中间首字母,因为它们是唯一以'。'结尾的项目。

例如

steve A. walkins

michael todd

Angel, Blair C.

并非所有名称都遵循设定模式,但所有中间名称都是如此。所以要教自己一些ruby试图找到无效的命令和用法到endwith with功能我可以在python中做。

我的示例Python代码是。

 print ' '.join(i for i in name.split(' ') if not i.endswith('.'))

2 个答案:

答案 0 :(得分:3)

不要假装我的答案比Ivaylo Strandjev建议的更好,但是如果你想要一个oneliner,它是你的python代码的'翻译'ruby:

name.split.select{|t| !t.end_with?('.')}.join(' ')

或者,甚至更清楚(感谢@ŁukaszNiemier)

name.split.reject{|t| t.end_with?('.')}.join(' ')

答案 1 :(得分:0)

在ruby中有一种方法end_with?

以下是一些示例ruby代码,可以执行您想要的操作:

def remove_initial name
   names = name.split
   names.select{|t| !t.end_with?(".")}.inject{|a,b| a + " " + b}
end

短暂的出版:

第一行name.split只是使用默认的空格分隔符来分割名称。

names.select{|t| !t.end_with?(".")}将仅过滤不以.结尾的名称,然后inject{|a,b| a + " " + b}将累积其余名称,在它们之间添加一个空格。