1

我有一个看起来像这样的字符串:

结果 1 - 10 的 20

我如何在 Ruby 中使用正则表达式找到该句子的数字 10 和 20?

就像是:

first_number, second_number = compute_regex(my_string)...

谢谢

4

2 回答 2

1

像这样:

first, second = *source.scan(/\d+/)[-2,2]

解释

\d+匹配任何数字

scan查找其正则表达式参数的所有匹配项source

[-2,2]返回数组中的最后两个数字:-2从末尾的索引开始,返回下一个2

*splat 运算符将这两个匹配项解压缩到变量中first,并且second注意:此运算符不是必需的,您可以删除它,我喜欢这个 概念

于 2013-03-14T16:11:13.813 回答
0

试试这个:

a = "Results 1 - 10 of 20"
first_number, second_number = a.match(/\w+ (\d) \- (\d+) of (\d+)/)[2..3].map(&:to_i)

map部分是必要的,因为返回的正则表达式MatchData对象是字符串。

于 2013-03-14T16:10:37.560 回答