У меня есть два типа струн. Если строка содержит foo
сначала и позже bar
, ее не следует трогать. Если он содержит только bar
, то bar
, следует заменить на qux
.Отрицательный взгляд сзади с чем-то посередине
"sometext foo someothetext bar somethirdtext"
не должны быть затронуты"sometext bar someothetext"
=>"sometext qux someothetext"
Похоже, мне нужно использовать отрицательный взгляд назад, но я не могу заставить его работать правильно. В настоящее время, у меня есть выражение:
str.gsub! (/(?<!foo)(.*)bar/), '\1qux'
Однако он заменяет bar
к qux
в обеих строках. У меня такое чувство, что .*
завинчивает вещи. Я не смог найти внешний пример, где внешний вид группы не предшествует соответствующей группе сразу.