我收到一个字符串,其中包含几种不同格式的两个数字:
"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/

10-13 02:14