Как удалить не-альфа-числовые или нечисловые символы с помощью функции Hive REGEXP EXTRACT()
Я пытался выяснить, как удалить несколько не буквенно-цифровых или нечисловых символов или вернуть только числовые символы из строки. Я пробовал:
SELECT
regexp_extract('X789', '[0-9]', 0)
FROM
table_name
но он возвращает '7', а не '789'.
Я также попытался удалить нечисловые символы, используя не соответствующий синтаксис ^((?!регулярное выражение.))*$:
SELECT
REGEXP_REPLACE('X789', '^((?![0-9]).)*$', '')
FROM
jav_test_ii
может ли regexp_extract возвращать несколько совпадений? Что я действительно пытаюсь сделать, это очистить мои данные должен содержать только цифры или буквенно-цифровой письмена. Это, кажется, помогает удалить плохие символы, но его не диапазон символов, таких как [0-9]. regexp_replace(строка, '�',")
EDIT: приведенный ниже запрос смог вернуть '7789', что именно то, что я искал.
SELECT
regexp_replace("7X789", "[^0-9]+", "")
FROM
table_name
1 ответов
см. также улей regexp_extract странность
Я думаю, что regex_extract вернет только номер группы, указанный в 3-м параметре.
regex_extract
кажется, работает только на линии, а затем уходит.
Я не знаю о замене аналога.
это может работать на не буквенных данных, хотя, если вы подали ему что-то вроде этого
REGEXP_REPLACE(error_code, '[^a-zA-Z0-9]+', '')
кроме того, для извлечения, см. ссылку выше и вы можете изменить его на
regexp_extract('X789', '[0-9]+', 0)
на несколько номеров.
или
regexp_extract('XYZ789', '[a-zA-Z]+', 0)
для нескольких Альфы.