Ruby正则表达式计算数字数组中匹配的元素

时间:2015-10-12 07:35:02

标签: ruby regex match

我有一个字符串:

'my_array1: ["1445","374","1449","378"], my_array2: ["1445","374", "1449","378"]'

我需要匹配my_array2: [...]中的所有数字组,并计算其中有多少位数。

我需要使用正则表达式和ruby MatchData

执行类似的操作
string = 'my_array1: ["1445","374", "1449","378"], my_array2: ["1445","374", "1449","378"]'
matches = string.match(/my_array2\:\s[\[,]\"(\d+)\"/)
count_matches = matches.size

预期结果应为4。 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您确保my_array2的内容始终为数字,则可以简单地使用拆分两次。首先,您将my_array2: ["拆分,然后按,拆分。这应该会为您提供所需的物品数量。

如果您无法保证,仍然可以按my_array2拆分而不是再次拆分,则使用"\d+"(或"\d+(\.\d+)?等模式,如果您有浮点值)并计算。

表达式的示例可用here