正则表达式基于Pattern在Ruby中拆分数组

时间:2014-03-24 21:39:38

标签: ruby regex arrays split

这更像是“我使用什么正则表达式”而不是语义问题。

我有以下字符串:

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

我需要将它拆分为逗号。但是,我不希望10,000 Yen中的逗号分成两个数组。

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

我得到:[¥10, 100 YEN, €100.00 EU, $100.00 US]作为不同的数组值。但我想:

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

有人能告诉我如何让这个正则表达式正确吗?对不起,我是这个东西的新手。

2 个答案:

答案 0 :(得分:6)

你可以使用负面的lookbehind来分割所有前面没有数字的逗号。

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

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

# ¥10,100 YEN
# €100.00 EU
# $100.00 US

答案 1 :(得分:1)

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

关键字是“负面观察”。