這里對sql常用的一些正則匹配作一些匹配,都是來源別人博客,此處稍作整理和總結。mark一下
1、sql中有like和rlike,具體區別
like:
%:匹配零個及多個任意字符
_:與任意單字符匹配
[]:匹配一個范圍
[^]:排除一個范圍
ESCAPE關鍵字定義轉義符WHEREColumnALIKE'%5/%%'ESCAPE'/'
like不是正則,而是通配符
rlike:
rlike是正則,正則的寫法與java一樣。'\'需要使用'\\',例如'\w'需要使用'\\w'
Arlike'\\d+'匹配一個或多個數字,notArlike'\\d+'匹配非數字
直接在條件里面寫正則表達式
2、hivesql中正則匹配函數
regexp功能和rlike類似
selectcount(*)fromolap_b_dw_hotelorder_fwherecreate_date_widregexp'\\d{8}'
selectcount(*)fromolap_b_dw_hotelorder_fwherecreate_date_widrlike'\\d{8}'
regexp_extract(stringsubject,stringpattern,intindex)將字符串subject按照pattern正則表達式的規則拆分,返回index指定的字符
selectregexp_extract('IloveYou','(I)(.*?)(You)',1)fromtest1limit1//1匹配I,2匹配love,3匹配You
regexp_replace(stringA,stringB,stringC)將字符串A中的符合Java正則表達式B的部分替換為C
selectregexp_replace("IloveYou","You","")fromtest1//Ilove
這里幾個函數類似oracle的5個正則函數,具體可參考oracle的正則匹配函數