before.replaceAll("\r|\n", "");
でもうまく行っちゃいました。

\\\n \\n \n いったいどれが正解なのでしょうか?

そこで考えたのですが、
まず最初の
\\\n
でうまく行ったのは、エスケープシーケンス+改行記号で検索し、
エスケープシーケンスの直後に特定の文字(改行だったらn)がないため、
\\は検索対象にならなかった

2個目の
\\n
は、javaの文字列の"\n"を正規表現に変換するときに改行記号と
認識されたため、マッチした。

3個目の
\nはjavaの文字列ではなく改行記号そのものを渡して
そのまま検索したためマッチした。

ということなのでしょうか?
ご意見お願いします。