Support empty string as replacement