2016-07-14 62 views
0

我想分割基于我定义为一个常数在开始阵列中的字符串预先定义的值如何分割字符串?基于从Array

+0

当询问您的代码有问题时,如果您提供样本输入和预期输出,这会很有帮助。如果我们建立自己的投入和产出预期,我们不一定符合您的标准。阅读“[mcve]”。另外,当你提供一个shell时,你不会显示任何解决问题的尝试。你向我们展示你的尝试并解释它为什么不起作用是非常重要的。如果没有这样做,看起来就像你希望我们为你写代码。 –

回答

3
OPERATOR = ['<=','=>',':','=','<','>'] 

r = /\s*#{ Regexp.union(OPERATOR) }\s*/ 
    #=> /\s*(?-mix:<=|=>|:|=|<|>)\s*/ 

str = "Now: is the =time for all <= to =>" 

str.split(r) 
    #=> ["Now", "is the", "time for all", "to"] 

注意,我重新排序的OPERATOR的元件,使得'<=''=>'(各自包括所述阵列长度为一个的两个字符串的)是在开始时。如果没有完成,

OPERATOR = [':','=','<','>','<=','>='] 
r = /\s*#{ Regexp.union(OPERATOR) }\s*/ 
    #=> /\s*(?-mix::|=|<|>|<=|>=)\s*/ 
str.split(r) 
    #=> ["Now", "is the", "time for all", "", "to"] 

str.split(r) 

参见Regexp::union

+0

谢谢你的工作,但有一个小问题。见下面的输出。看起来像它遇到的地方<= or > =它实际上添加了一个空的换行符。 现在 是 时间所有 到 – Junaid

+0

感谢您指出。我解决了这个问题。 –

+0

谢谢。它仍然显示空白,但我相信我会弄清楚。 – Junaid