当我使用正则表达式匹配数字时,我将其作为字符串:
?> 'TestingSubject2981'.match /\d+$/
=> #<MatchData "2981">
在某种程度上可以将数字作为整数而没有to_i
s?
答案 0 :(得分:2)
问题是正则表达式只适用于字符串,而不适用于其他数据类型。
正则表达式具有匹配数字的模式,但那些仍然只能找到代表数字的字符,而不是我们用于数学的二进制值。一旦引擎返回匹配项,它们仍然是字符,因此我们必须使用to_i
将它们转换为二进制表示形式。
MMM琦?
答案 1 :(得分:1)
正则表达式不应该将字符串转换为整数(或任何其他类)。我能看到的唯一方法是使用String#to_i方法。我不明白为什么你会避免它。
答案 2 :(得分:0)
您还可以使用从字符串中获取数字:
'TestingSubject2981'.scan(/\d+/)[0].to_i