Вместо некожадных квантификаторов (*?
) с слишком широким классом символов (.
, совпадающим с любым символом вообще), будет более точным: [^/]*
будет соответствовать 0 или более символов без косой черты, что гарантирует, что совпадение не пересекает границы /
.
Также не забудьте добавить подходящие детали, которые вы не хотите заменять, обратно в запасную часть:
s!/[^/]*\.txt!/b82.txt!
Я перешел на другой разделитель для s
здесь (а именно !
), чтобы избежать синдрома наклоняющейся зубочистки (/\/[^\/]...
).