我希望删除一系列名称中的所有中间名首字母。我发现我可以用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('.'))
答案 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}
将累积其余名称,在它们之间添加一个空格。