regex to replace backslash and single quote with single quote using postgres regexp_replace()

William Orazi picture William Orazi · Jan 14, 2015 · Viewed 12.4k times · Source

Just as the title states, I'm not the best w/ regex, so can anyone provide the appropriate regex for the following:

UPDATE table SET column = REGEXP_REPLACE(column, {regex}, '''');

Basically, I'd like to replace any instances of backslashes (\) followed by one or more single quotes with one single quote.

So, the string Hello World\'s or Hello World\'''''s should become Hello World's, but not Hello World\s.

Answer

David Faber picture David Faber · Jan 14, 2015

This is relatively straightforward. Note that both the backslash character \ as well as the single-quote character ' (which you escaped in the OP) need to be escaped. The difference is that the backslash has to be escaped in the regex itself, whereas the single quote is escaped in the string literal. Anyway, enough of that digression.

UPDATE table SET column = REGEXP_REPLACE(column, '\\''+', '''', 'g');

Hope this helps.