Как заменить специальные символы в столбцах улья? - PullRequest
1 голос
/ 03 апреля 2020

У меня есть требование в улье, где нужно заменить не-алфавитные символы c на _. Данные в столбце «Pranav_Wagde_job_1163_W.Pranav Ltr-Resume 04.07.2016.pdf»

SELECT FILENAME, REGEXP_REPLACE(FILENAME,"[^0-9a-zA-Z._]", "_"), FROM HIVEDB.FILEDATA WHERE FILENAME='Pranav Wagde_job_1163_W.Pranav Ltr-Resume 04.07.2016.pdf';

Вывод

Pranav_Wagde_job_1163_W.Pranav Ltr-Resume 04.07.2016.pdf

Я не могу заменить точки в имени файла , Как заменить все точки в данных, кроме расширения файла?

1 Ответ

0 голосов
/ 03 апреля 2020

Если поддерживается положительный прогноз, вы можете добавить чередование |, соответствующее всем точкам, кроме той, которая содержит 1+ слов символов справа, за которыми следует конец строки.

(?:[^0-9a-zA-Z._]|\.(?!\w+$))

Regex demo

...