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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hive正则表达式

發(fā)布時(shí)間:2024/3/12 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive正则表达式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前段時(shí)間,在我們數(shù)據(jù)開(kāi)發(fā)的過(guò)程中,因?yàn)闆](méi)有現(xiàn)成的數(shù)據(jù)表,導(dǎo)致數(shù)據(jù)沒(méi)有辦法直接取,需要解析日志的內(nèi)容,從日志里面拿到我們想要的數(shù)據(jù),但是日志的內(nèi)容并沒(méi)有那么的規(guī)則,這個(gè)時(shí)候,正則表達(dá)式就展現(xiàn)出很大的優(yōu)勢(shì),正好我也把正則表達(dá)式溫習(xí)實(shí)踐了一遍,正好整理下來(lái)。

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

一、regexp

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

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

返回結(jié)果:

true false

二、regexp_replace

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

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

返回結(jié)果:

四川辦第一名

三、regexp_extract

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

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

返回結(jié)果:

1

四、常用的正則表達(dá)式規(guī)則:

1,元字符匹配

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

2,位置匹配

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

3,頻率匹配

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

正則表達(dá)式可以根據(jù)不同的需求,找到適合自己的函數(shù),以及規(guī)則一起搭配使用。
正則表達(dá)式的使用就分享到這里了,我是喵~~,一起交流學(xué)習(xí)哇!

總結(jié)

以上是生活随笔為你收集整理的Hive正则表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。