1

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

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

是否有可能在没有一些 s 的情况下将数字作为整数获得to_i

4

3 回答 3

2

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

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

嗯,凯?

于 2013-05-02T14:46:18.203 回答
1

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

于 2013-05-02T14:37:16.343 回答
0

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

'TestingSubject2981'.scan(/\d+/)[0].to_i
于 2013-05-02T16:50:52.457 回答