2017-09-04 59 views
-4

我有一個字符串:紅寶石字符串數組轉換使用「掃描」功能

"10/2+3*3/2-3/2+10" 

我需要將其轉換爲一個數組:

["10", "/", "2", "+", "3", "*", "3", "/", "2", "-", "3", "/", "2", "+", "10"] 

,而無需使用任何寶石。

我使用下面的代碼,嘗試將其轉換:

"10/2+3*3/2-3/2+10".scan(/[\d*,+,\-,*,\/]/) 
# => ["1", "0", "/", "2", "+", "3", "*", "3", "/", "2", "-", "3", "/", "2", "+", "1", "0"] 

輸出是不是我所期待的。

+1

這是不是一個 「我想要」 的網站。 –

+0

@MarcoSalerno你是什麼意思,我沒有得到你? –

+0

你的問題是什麼? – sawa

回答

4

使用String#split

"10/2+3*3/2-3/2+10".split(/(\D)/) 
#=> ["10", "/", "2", "+", "3", "*", "3", "/", "2", "-", "3", "/", "2", "+", "10"] 
1

逗號內正則表達式中的方括號被視爲逗號。你想要的是模式的結合。

"10/2+3*3/2-3/2+10".scan(/\d+|\+|\*|\/|\-/) 
+0

或'/ \ d + | [+ * \/- ] /'或不必引用斜線:'%r {\ d + | [+ */- ]}' – Stefan

1
"10/2+3*3/2-3/2+10".scan(/\d+|./) 
    #=> ["10", "/", "2", "+", "3", "*", "3", "/", "2", "-", "3", "/", "2", "+", "10"]