A good strategy when attempting to replace portions of an expression is to look at the FullForm
.
Below is an example expression:
expr = w^4 + w^(3 n) + w^(6 n) + w^(3 + 3 n) + w^(4 + 3 n)
and the associated FullForm
FullForm[expr]

By examining the FullForm
of expr
we see three forms where w
is raised to a power involving integers: directly, with a times or with a plus and times.
Use patterns with ReplaceAll
to accomplish the job.
expr //. {
Power[w, Plus[integer_Integer /; integer > 2, rest_]] ->
Power[w, Plus[integer - 3, rest]],
Power[w, integer_Integer] -> Power[w, integer - 3],
Power[w, Times[integer_Integer, n]] ->
Power[w, Times[integer - 3, n]]
}

Update
Upon request, the following expression was given as an example.
expr = (-a*w^3 + b*(n + 1)*w^6 +
9*w^(3 + 3*n)*Sum[d[i], {i, 1, n}]^2 -
w^(3 + 6*n)*Sum[c[i], {i, 1, n}])/(s^2*w^(4 + 3*n))
Now one additional rule to handle negative integers is required.
expr //. {
Power[w, Plus[integer_Integer /; integer > 2, rest_]] ->
Power[w, Plus[integer - 3, rest]],
Power[w, Plus[integer_Integer /; integer < -2, rest_]] ->
Power[w, Plus[integer + 3, rest]],
Power[w, integer_Integer] -> Power[w, integer - 3],
Power[w, Times[integer_Integer, n]] ->
Power[w, Times[integer - 3, n]]
}

One might want to go further and assume that n
is an integer. I leave that as an exercise for you.
expr
so we have an example to work with $\endgroup$