日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive正则表达式

發布時間:2024/3/12 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive正则表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間,在我們數據開發的過程中,因為沒有現成的數據表,導致數據沒有辦法直接取,需要解析日志的內容,從日志里面拿到我們想要的數據,但是日志的內容并沒有那么的規則,這個時候,正則表達式就展現出很大的優勢,正好我也把正則表達式溫習實踐了一遍,正好整理下來。

hive支持的正則表達式有三種,分別是regexp、regexp_replace、regexp_extract

一、regexp

1,語法格式: A REGEXP B
釋義:A是需要匹配的字符串,B是正則表達式字符串
返回結果:boolean或null
示例SQL:

select '四川辦' regexp '川辦';select '四川辦' regexp '湖南';

返回結果:

true false

二、regexp_replace

1,語法格式: regexp_replace(string A, string B, string C)
2,釋義:將字符串A中的符合java正則表達式B的部分替換為C。注意,在有些情況下要使用轉義字符,類似oracle中的regexp_replace函數。
示例SQL:

select regexp_replace('四川辦第1名', '\\d+', '一');

返回結果:

四川辦第一名

三、regexp_extract

1,語法格式:regexp_extract(string subject, string pattern, int index)
2,釋義:將字符串subject按照pattern正則表達式的規則拆分,返回index指定的字符,index從1開始計。
示例SQL:

select regexp_extract('四川辦:第1名', '([0-9]+)', 1);

返回結果:

1

四、常用的正則表達式規則:

1,元字符匹配

(.) 表示匹配除換行符以外的任意字符。 (\w) 表示匹配字母、下劃線、數字 (\W匹配漢字) (\d) 表示匹配數字 (\s) 表示匹配任意的空白符(tab 換行 空格) ([ ]) 表示匹配方括號中任一字符 ([^匹配內容]) 表示不匹配方括號中任一字符

2,位置匹配

(^) 表示匹配字符串的開始,空值:^$ ($) 表示匹配字符串的結束 (\b) 表示匹配單詞的開始或結束。 (\B) 表示匹配非單詞的開始或結束

3,頻率匹配

(*) 表示匹配重復0次或多次 (+) 表示匹配重復一次或更多次 (?) 表示匹配重復0次或1({n}) 表示匹配重復n次 ({n,}) 表示重復n次或更多次 ({n,m}) 表示重復n到m次

正則表達式可以根據不同的需求,找到適合自己的函數,以及規則一起搭配使用。
正則表達式的使用就分享到這里了,我是喵~~,一起交流學習哇!

總結

以上是生活随笔為你收集整理的Hive正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。