Ответ 1
select regexp_replace('abc$wanto&toremove#special~chars', '[^a-zA-Z]', '', 'g')
В столбце таблицы в строке мы можем иметь числа/специальные символы/пробелы.
Я хочу заменить номера/специальные символы/пустое пространство пустым char, я вижу, что есть функция с именем regexp_replace
, но как использовать не очень удобную для пользователя помощь avaialble, например, я хочу использовать следующую строку.
String = 'abc$wanto&toremove#special~chars'
Я хочу удалить все специальные символы и цифры из строки выше, чтобы разрешить только a-z
и a-z
остальную часть символов заменить на ''
как это сделать?
select regexp_replace('abc$wanto&toremove#special~chars', '[^a-zA-Z]', '', 'g')
Чтобы сделать это проще:
regexp_replace('abc$wanto&toremove#special~chars', '[^[:alpha:]]')
Если вы хотите заменить char ближайшим не специальным char, вы можете сделать что-то вроде этого:
select
translate(
lower( name ), ' ''àáâãäéèëêíìïîóòõöôúùüûçÇ', '--aaaaaeeeeiiiiooooouuuucc'
) as new_name,
name
from cities;
Для меня работали следующие.
regexp_replace(code, '[^a-zA-Z0-9]+', '','g')
Поскольку он добавляет глобальный фильтр, он повторяет регулярное выражение для всей строки.
Пример
SELECT regexp_replace('Well- This Did-Not work&*($%%)_', '[^a-zA-Z0-9]+', '')
Возвращает: "WellThis Did-Not work & * ($ %%) _"
SELECT regexp_replace('Well- This Did-Not work&*($%%)_', '[^a-zA-Z0-9]+', '','g')
Возвращает: "WellThisDidNotwork"
У кого есть символы, которые мы не хотим удалить.
Должно быть:
regexp_replace('abc$wanto&toremove#special~chars', '[^a-zA-Z]+', '')