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

gra*_*aci 1 ruby regex arrays split

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

我有以下字符串:

moneyString = "¥10,100 YEN,€100.00 EU,$100.00 US"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

Dan*_*ers 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
Run Code Online (Sandbox Code Playgroud)