2種類の弦を持っています。文字列にfoofirst と laterが含まれている場合はbar、触れないでください。のみが含まれている場合barは、barを に置き換える必要がありますqux。
"sometext foo someothetext bar somethirdtext"触れてはいけない"sometext bar someothetext"=>"sometext qux someothetext"
ネガティブルックビハインドを使用する必要があるようですが、正しく機能させることができません。現在、私は式を持っています:
str.gsub! (/(?<!foo)(.*)bar/), '\1qux'
ただし、両方の文字列でbartoに置き換えられます。私は物事を台無しquxにする感じがあります。.*後読みグループが一致したグループにすぐに先行しない後読みの例を見つけることができませんでした。