私のアプリでは、すべての数値の部分文字列を見つけて、それぞれをスキャンし、範囲(5〜15など)に一致する最初の部分文字列を見つけて、そのインスタンスを別の文字列「X」に置き換える必要があります。
私のテスト文字列s = "1 foo 100 bar 10 gee 1"
私の最初のパターンは、1桁以上の任意の文字列です。re = Regexp.new(/\d+/)
matches = s.scan(re)
与える["1", "100", "10", "1"]
N番目の一致のみを「X」に置き換えたい場合はどうすればよいですか?
たとえば、3番目の一致「10」(matches [2])を置き換えたい場合、
s[matches[2]] = "X"
2つの置き換えが行われるため、単純に言うことはできません。
"1 foo X0 bar X gee 1"
どんな助けでもいただければ幸いです!