Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次のような文字列があります。
結果 1 - 10/20
Rubyで正規表現を使用して、その文の10番と20番を見つけるにはどうすればよいですか?
何かのようなもの:
first_number, second_number = compute_regex(my_string)...
ありがとう
そのようです:
first, second = *source.scan(/\d+/)[-2,2]
説明
\d+任意の数に一致
\d+
scanの正規表現引数のすべての一致を検索しますsource
scan
source
[-2,2]配列の最後の 2 つの数値を返します: 末尾のインデックス-2から開始し、次を返します2
[-2,2]
-2
2
*splat 演算子は、これらの 2 つの一致を変数にアンパックしますfirst(second注:この演算子は必要ありません。削除できます。私はこの概念が気に入ってい ます) 。
*
first
second
これを試して:
a = "Results 1 - 10 of 20" first_number, second_number = a.match(/\w+ (\d) \- (\d+) of (\d+)/)[2..3].map(&:to_i)
map返される正規表現MatchDataオブジェクトは文字列であるため、この部分が必要です。
map
MatchData