如何使用to_I获取Ruby字符串中的第二个整数?

如何使用to_I获取Ruby字符串中的第二个整数?,ruby,parsing,Ruby,Parsing,我需要转换一些字符串,并提取前两个整数,例如: 未知文本60更多未知文本25某物 致: 如果我做了string.to_I,我会得到第一个整数:,60。我不知道如何得到第二个整数,25。有什么想法吗?您可以使用像(\d+)这样的正则表达式捕获字符串中的所有数字,然后迭代捕获组,将每个数字转换为整数 编辑:我不懂Ruby,所以我把这个答案放到了维基上,希望Ruby开发者能充实出一个代码示例。类似以下的东西怎么样: @width, @height = "unkowntext60moreunknownt

我需要转换一些字符串,并提取前两个整数,例如:

未知文本60更多未知文本25某物

致:


如果我做了
string.to_I
,我会得到第一个整数:,60。我不知道如何得到第二个整数,25。有什么想法吗?

您可以使用像
(\d+)
这样的正则表达式捕获字符串中的所有数字,然后迭代捕获组,将每个数字转换为整数


编辑:我不懂Ruby,所以我把这个答案放到了维基上,希望Ruby开发者能充实出一个代码示例。

类似以下的东西怎么样:

@width, @height = "unkowntext60moreunknowntext25something".scan(/[0-9]+/)
text = "unkowntext60moreunknowntext25something"
@width, @height = text.scan(/\d+/).map { |n| n.to_i }  #=> 60, 25

这将返回字符串,而不是整数这是真的,您可以使用to_i轻松地将它们转换为int,但保留它们为字符串是很好的(如果接收器不需要获取整数,或者它再次将它们转换为字符串。如果您在帮助器中使用@width和@height,这是一种常见情况)。完美!这正是我想要的:)
text = "unkowntext60moreunknowntext25something"
@width, @height = text.scan(/\d+/).map { |n| n.to_i }  #=> 60, 25