Нет общего решения, так как в вашем тексте могут быть такие вещи, как
&
, что может означать либо один амперсанд, либо неправильный способ сказать &
, который должен быть выражен как
&
Однако последнее весьма маловероятно (если вы не избежите некоторого HTML).
Так что попробуйте что-то вроде
row = row.replaceAll("&(?!(?:\\#|amp|quot|nbsp|\\d+);)", "&");
Кстати, &
отсутствует последняя точка с запятой. Предпочитайте &
использованию кодов ASCII.