Is there some function to normalize name string:
select normalize('R.C. Bray')
'R. C. Bray'
Or the opposite direction?
The simple replace('. ', '.')
or replace('.', '. ')
is wrong and may be effect another data.
regexp_replace
should be enough:
regexp_replace('R.C. Bray.', '([A-Z])(\.)(\w)', '\1\2 \3', 'g')
This replaces a single upper case letter followed by a .
directly followed by a "word character" by inserting a space between the dot and the character. It leaves dots that have a whitespace after them untouched.
select regexp_replace(array_to_string(string_to_array('R.C. Bray', '.'), '. '), '[ ]+', ' ', 'g');
Can be work. But may be not a good method.