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.

2 Answers 2


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.