Hive正则表达式
前段時間,在我們數據開發的過程中,因為沒有現成的數據表,導致數據沒有辦法直接取,需要解析日志的內容,從日志里面拿到我們想要的數據,但是日志的內容并沒有那么的規則,這個時候,正則表達式就展現出很大的優勢,正好我也把正則表達式溫習實踐了一遍,正好整理下來。
hive支持的正則表達式有三種,分別是regexp、regexp_replace、regexp_extract
一、regexp
1,語法格式: A REGEXP B
釋義:A是需要匹配的字符串,B是正則表達式字符串
返回結果:boolean或null
示例SQL:
返回結果:
true false二、regexp_replace
1,語法格式: regexp_replace(string A, string B, string C)
2,釋義:將字符串A中的符合java正則表達式B的部分替換為C。注意,在有些情況下要使用轉義字符,類似oracle中的regexp_replace函數。
示例SQL:
返回結果:
四川辦第一名三、regexp_extract
1,語法格式:regexp_extract(string subject, string pattern, int index)
2,釋義:將字符串subject按照pattern正則表達式的規則拆分,返回index指定的字符,index從1開始計。
示例SQL:
返回結果:
1四、常用的正則表達式規則:
1,元字符匹配
(.) 表示匹配除換行符以外的任意字符。 (\w) 表示匹配字母、下劃線、數字 (\W匹配漢字) (\d) 表示匹配數字 (\s) 表示匹配任意的空白符(tab 換行 空格) ([ ]) 表示匹配方括號中任一字符 ([^匹配內容]) 表示不匹配方括號中任一字符2,位置匹配
(^) 表示匹配字符串的開始,空值:^$ ($) 表示匹配字符串的結束 (\b) 表示匹配單詞的開始或結束。 (\B) 表示匹配非單詞的開始或結束3,頻率匹配
(*) 表示匹配重復0次或多次 (+) 表示匹配重復一次或更多次 (?) 表示匹配重復0次或1次 ({n}) 表示匹配重復n次 ({n,}) 表示重復n次或更多次 ({n,m}) 表示重復n到m次正則表達式可以根據不同的需求,找到適合自己的函數,以及規則一起搭配使用。
正則表達式的使用就分享到這里了,我是喵~~,一起交流學習哇!
總結
- 上一篇: arduino小车电机不转_一文解析—电
- 下一篇: 矩阵的行列式,证明|A||B|=|AB|