2014-03-24 36 views
1

這更像是「我使用什麼正則表達式」而不是語義問題。正則表達式根據模式在Ruby中拆分數組

我有以下字符串:

moneyString = "¥10,100 YEN,€100.00 EU,$100.00 US" 

,我需要它拆分的逗號。不過,我不希望日元中的逗號分成兩個數組。

目前,如果我做moneyString.split(',')

我得到:[¥10, 100 YEN, €100.00 EU, $100.00 US],因爲不同的數組值。但我想:

[¥10100 YEN, €100.00 EU, $100.00 US]

能有人告訴我如何得到這個正則表達式正確嗎?我很抱歉,但我是一個完全的新手這個東西。

+2

YEN從哪裏來? – squiguy

+0

哎呀。錯字! –

回答

6

您可以使用負向倒序在所有不以數字開頭的逗號上進行拆分。

moneyString = "¥10,100 YEN,€100.00 EU,$100.00 US" 

puts moneyString.split(/(?<!\d),/) 

# ¥10,100 YEN 
# €100.00 EU 
# $100.00 US 
1
moneyString.split(/(?<!\d),/) 

的關鍵詞是 「負向後看」。