まだマッチしている間に正規表現内のマッチのインデックスを見つけることは可能ですか?例:文字列内の正規表現一致のインデックスを見つける
str = "foo [bar] hello [world]"
str.match(/\[(.*?)\]/) { |match,idx|
puts match
puts idx
}
残念ながら、idx
はこの例ではnilです。
私の実際の問題は、いくつかの条件(たとえば、文字列がブラックリスト内にある場合など)に基づいて、括弧で囲まれた特定のサブストリングを置き換える文字列です。 world
がブラックリストに含まれている場合、"foo [bar] hello [world]"
は"foo [bar] hello (world)"
になるはずです。
さらにエリックDuminilの提案に、私は私のコードをリファクタリングしています。私の回答を受け入れたので、更新を確認してください:) –