如何在HIVE SQL中删除字符串中的分号

时间:2019-01-25 23:02:28

标签: hive

我正在尝试删除“;”字符串中的分号。 我应该在HIVE SQL中使用什么命令。我知道regexp_replace可以工作..但是放什么呢? 看起来 ; -特殊字符无效,但其他特殊字符(如或)有效。 例如 , 数据看起来像

;;;;;0123445

我希望数据看起来像这样

0123445

在此方面的任何帮助将不胜感激。我一直在为此苦苦挣扎。

3 个答案:

答案 0 :(得分:0)

REGEXP_REPLACE确实看起来不错。例如,这将从字段中删除所有分号:

REGEXP_REPLACE(my_column, ';', '')

来自the documentation

  

使用REPLACEMENT实例返回将INITIAL_STRING中所有与PATTERN中定义的Java正则表达式语法匹配的子字符串替换后得到的字符串。

请注意,分号在regexp语言中没有特殊含义。


如果您只想在字符串的开头匹配分号(如您的问题所示),请使用正则表达式特殊字符^,它表示字符串的开头

REGEXP_REPLACE(my_column, '^;', '')

答案 1 :(得分:0)

要删除所有分号,只需使用replace()

replace(my_column, ';', '')

要删除前导分号,可以使用:

replace(my_column, '^;+', '')

答案 2 :(得分:0)

在Hive中,您需要转义分号。

regexp_replace(column_name,'\;','')