2016-02-26 32 views
0

您好我試圖在我的蜂房表從一列中提取數據的一部分,但一個字符的位置是不是在一個地方蜂房正則表達式 - 只有字符串的部分所需

select value4,regexp_extract(value4,'*****',0) from hive_table; 

列值如下所示

grade:data:home made;Cat;dinnerbox_grade_Enroll 
list:date:may;animal;dinnerbox_list_value 
cgrade:made_data;dinnerbox_cgrade_notEnroll 

我想從dinnerbox的數據到最後。

任何人都可以幫忙嗎?

回答

0

這是一個非常簡單的正則表達式

.*dinnerbox(.*?)$ 

使用非貪婪通配符,但它迫使該行的末尾可以確保您始終獲得dinnerbox底。

你想捕獲組1

爲了擺脫_,你可以使用

.*dinnerbox_(.*?)$ 
+0

謝謝貝利S..It幫助:)。還有一個問題,如果我想從dinnerbox_anytext中選擇部分數據...例如:dinnerbox_grade,dinnerbox_list,dinnerbox_cgrade – Sai

+0

您是在問怎麼擺脫'_',或者如何從'dinnerbox_anytext'獲取'anytext' '在輸入的任何地方而不是結束? –

+0

我想要一個輸出,例如:dinnerbox_grade,dinnerbox_list,dinnerbox_cgrade。沒有完成直到價值只有部分數據結束。 dinnerbox_anystring – Sai

相關問題