2つの用語の間に文字列が見つかった場合はそれを置き換える文字列置換を実行したいので、次のような文字列がある場合:
"123 pre 456 post"
私は得ることができます:
"123 pre 789 post"
私は次のようなことをすることでこれを行うことができます:
string.sub(/(pre\s+)\S+(\s+post)/, "\\1789\\2")
ただし、可能であれば2つのキャプチャを使用しないようにします。実際、代わりに次のような正規表現を使用したいと思います/pre\s+(\S+)\s+post/
。キャプチャの範囲を取得してから、それを置き換えます。(標準のRubyライブラリを使用して)それを行う方法はありますか?