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から開始し、次を返します2

*splat 演算子は、これらの 2 つの一致を変数にアンパックします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 に答える