我收到一个字符串,其中包含几种不同格式的两个数字:"344, 345"
, "334,433"
, "345x532"
和 "432 345"
我需要使用 split
将它们拆分为数组中的两个单独数字,然后使用 Integer(num)
转换它们。
到目前为止我尝试过的:
nums.split(/[\s+,x]/) # split on one or more spaces, a comma or x
但是,测试时似乎无法匹配多个空格。此外,上面显示的逗号版本 (
"344, 345"
) 中不允许有空格。如何匹配多个分隔符?
最佳答案
您在模式中使用了一个字符类,它只匹配一个字符。 [\s+,x]
匹配 1 个空格,或 +
、 ,
或 x
。您打算使用 (?:\s+|x)
。
但是,也许仅仅 \D+
(1 个或多个非数字字符)就足够了:
"345, 456".split(/\D+/).map(&:to_i)
关于ruby - 由多个分隔符分割,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37133043/