如何使用hive中的正则表达式排除字符串中的特殊字符

时间:2017-05-04 19:23:41

标签: regex hive apache-pig hiveql

我想要排除句点(.)和大括号(())。
但是,十进制数应保持不变

所以基本上如果输入是

  

Hive仅支持FROM子句中的子查询(通过Hive 0.12)。   必须为子查询指定名称,因为FROM中的每个表都是如此   子句必须有一个名字。子查询选择列表中的列必须具有   独特的名字。

输出应为

  

Hive仅在FROM子句中通过Hive 0.12支持子查询   必须为子查询指定名称,因为FROM子句中的每个表都是如此   必须具有名称子查询选择列表中的列必须具有唯一性   名称

1 个答案:

答案 0 :(得分:1)

with t as (select 'Hive supports subqueries only in the FROM clause (through Hive 0.12). The subquery has to be given a name because every table in a FROM clause must have a name. Columns in the subquery select list must have unique names.' as mycol)

select  regexp_replace(mycol,'(\\d+\\.\\d+)|[.()]','$1'),'\\((.*?)\\)'
from    t
  

Hive仅在FROM子句中通过Hive 0.12支持子查询   必须为子查询指定名称,因为FROM子句中的每个表都是如此   必须具有名称子查询选择列表中的列必须具有唯一性   名称