Это регулярное выражение сделает всю работу за вас ([^\N$])+
.
Предполагая, что символ, показанный на изображении, является $
.
Сначала , вы можете использовать regexp_extract()
для извлечения определенного элемента массива.Он имеет следующий синтаксис:
regexp_extract(string subject, string pattern, int index)
Второй , вы можете использовать regexp_replace
, который имеет следующий синтаксис:
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)
Тестовые данные
WITH string_column
AS (SELECT explode(array('XXX - ABCSSSSSSSSSSSGH\N\N',
'\N$\N$\N$\N$XXX - ABCDEFGH$\N\N',
'\N\N\N\N', '\N\N\N\NXXX - ABCDEFGH\N')) AS
str_column
)
SELECT regexp_replace(regexp_extract(str_column, '([^\N$])+', 0), "$", " ")
AS string_col
FROM string_column
Результатом будет
------------------------------
| string_col |
------------------------------
| XXX - ABCSSSSSSSSSSSGH |
------------------------------
| XXX - ABCDEFGH |
------------------------------
| |
------------------------------
| XXX - ABCDEFGH |
------------------------------
Примечание: '0', который указывает индекс, производит совпадение после извлечения на основе шаблона.
regexp_extract(str_column, '(,|[^\N$])+', 0)
Следующееоператор заменяет вхождение любого '$'
regexp_replace(regexp_extract(str_column, '([^\N$])+', 0), "$", " ")
. Для получения дополнительной информации о