如何拆分两个字符串分隔符

时间:2016-05-24 18:46:38

标签: ruby

如何基于两个字符串分隔符(例如" of "" in ")分割字符串。

例如,字符串:

"dogs in Toronto of Canada"

会转换为数组:

["dogs", "Toronto", "Canada"]

2 个答案:

答案 0 :(得分:3)

您可以将String#split与正则表达式一起使用:

"dogs in Toronto of Canada".split(/\sof\s|\sin\s/)
=> ["dogs", "Toronto", "Canada"]

答案 1 :(得分:0)

这是一个更通用的目的:

dogs.split(/\b\s*(?:of|in)\s*\b/)

那里有很多残骸,但它处理不规则的间距,of出现在短语的开头或结尾,依此类推。

您也可以尝试使用更具适应性,但牺牲易读性:

splits = %w[ of in at on ]
pattern = Regexp.new('\b\s*%s\s*\b' % Regexp.union(splits))

dogs.split(pattern).reject(&:empty?)