This is a recurrent topic: replacing subexpressions. See for instance:

```
v = {v1, v2, v3};
expr = v/Norm[v] // Simplify[#, Assumptions -> _ \[Element] Reals] &

(* {v1/Sqrt[v1^2 + v2^2 + v3^2], 
    v2/Sqrt[v1^2 + v2^2 + v3^2], 
    v3/Sqrt[v1^2 + v2^2 + v3^2]} *)

```

Is it possible to go from the developed form of `expr` back to $v/\|v\|$?

Most solutions on this website (such as `CoefficientArrays`) rely on a polynomial form, which is not the case here. Specifying the rule manually (such as `Sqrt[v1^2 + v2^2 + v3^2] -> n` does not help, which is not surprising since *Mathematica* handles the expression differently from what it looks like.

This one is a simple example but of course, I would like the solution to work on more intrincated cases, such as:

```
{{-(v1^2/(v1^2 + v2^2 + v3^2)^(3/2)) + 1/Sqrt[v1^2 + v2^2 + v3^2],
-((v1 v2)/(v1^2 + v2^2 + v3^2)^(3/2)), -((v1 v3)/(v1^2 + v2^2 + v3^2)^(3/2))}
, {-((v1 v2)/(v1^2 + v2^2 + v3^2)^(3/2)), -(v2^2/(v1^2 + v2^2 + v3^2)^(3/2)) 
+ 1/Sqrt[v1^2 + v2^2 + v3^2], -((v2 v3)/(v1^2 + v2^2 + v3^2)^(3/2))}
, {-((v1 v3)/(v1^2 + v2^2 + v3^2)^(3/2)), -((v2 v3)/(v1^2 + v2^2 + v3^2)^(
   3/2)), -(v3^2/(v1^2 + v2^2 + v3^2)^(3/2)) + 1/Sqrt[v1^2 + v2^2 + v3^2]}}

```

which is equal to the much simpler
$$ \dfrac{1}{\|v\|}\Big(I\_3 - \dfrac{v}{\|v\|}\otimes \dfrac{v}{\|v\|} \Big)$$