如何使用正则表达式将数字与整数匹配?

时间:2013-05-02 14:23:33

标签: ruby regex

当我使用正则表达式匹配数字时,我将其作为字符串:

?> 'TestingSubject2981'.match /\d+$/
=> #<MatchData "2981">

在某种程度上可以将数字作为整数而没有to_i s?

3 个答案:

答案 0 :(得分:2)

问题是正则表达式只适用于字符串,而不适用于其他数据类型。

正则表达式具有匹配数字的模式,但那些仍然只能找到代表数字的字符,而不是我们用于数学的二进制值。一旦引擎返回匹配项,它们仍然是字符,因此我们必须使用to_i将它们转换为二进制表示形式。

MMM琦?

答案 1 :(得分:1)

正则表达式不应该将字符串转换为整数(或任何其他类)。我能看到的唯一方法是使用String#to_i方法。我不明白为什么你会避免它。

答案 2 :(得分:0)

您还可以使用从字符串中获取数字:

'TestingSubject2981'.scan(/\d+/)[0].to_i