Вы можете использовать группу и ссылаться на нее в замещающей строке:
String text = "This is a big sentence . ! ? ! but I have to remove the space .";
String replaced = text.replaceAll("\\s+(\\p{Punct})", "$1")
Здесь мы фиксируем пунктуацию в группе с (\\p{Punct})
и заменяем всю совпадающую строку на группу (названную * 1005).*).
В любом случае, мой ответ - просто любопытство: я думаю, что @aioobe ответ лучше:)