2014-03-24 42 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),/) 

的关键词是 “负向后看”。