我正在尝试在括号之间获取字符串,但我总是得到空值。
String_Input: select sum(OUTPUT_VALUE) from table_name
Output : OUTPUT_VALUE
我在这里尝试了什么:
select regexp_extract(String_Input,"/\\(([^)]+)\\)/") from table_name;
任何获得价值的建议?
答案 0 :(得分:2)
如果需要获取没有括号的值,则应指明需要将第三个参数中的Captturing group 1值提取到regexp_extract
函数。此外,您应该删除/
分隔符,它们被解析为文字符号。
select regexp_extract(String_Input,"\\(([^)]+)\\)", 1) from table_name;
^ ^ ^
' index' 参数是Java regex
Matcher group()
方法索引。有关'索引'的更多信息,请参阅 docs / api / java / util / regex / Matcher.html 。或Java正则表达式group()
方法。
答案 1 :(得分:0)
试试这个:
\((.*?)\)
在Hive中:
select regexp_extract(String_input,'\\((.*?)\\)')
from table_name