2016-07-14 63 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