Я бы подумал, что \s
охватит все пробелы, но, похоже, это не относится к Postgres 'REGEXP_REPLACE
. Вместо этого я получил хороший пробег, используя класс символов [\r\n\t ]
для представления всего пробела, который вы хотите удалить. Кроме того, вы действительно хотите обрезать такие пробелы только в начале и конце столбца, а не в середине, поэтому мы можем искать по следующему шаблону регулярных выражений:
^[\r\n\t ]*|[\r\n\t ]*$
и затем замените его пустой строкой, чтобы удалить ее.
WITH yourTable AS (
SELECT ' \n \t \n \r\n abc_def_\n xyz \r\n '::text AS col
)
SELECT
col,
REGEXP_REPLACE(col, '^[\\r\\n\\t ]*|[\\r\\n\\t ]*$', '', 'g') AS col_updated
FROM yourTable;
Демо