hive中經常會需要處理字串,本篇文章就來聊聊如何靈活運用正規表示式來出來資料;
正規表示式中的符號介紹
^ 匹配輸入字串的開始位置。
$ 匹配輸入字串的結束位置。
[…] 字元集合。匹配所包含的任意乙個字元。例如, 『[abc]』 可以匹配 「plain」 中的 『a』。
[^…] 負值字元集合。匹配未包含的任意字元。例如, 『[^abc]』 可以匹配 「plain」 中的』p』。
p1|p2|p3 匹配 p1 或 p2 或 p3。例如,『z|food』 能匹配 「z」 或 「food」。』(z|f)ood』 則匹配 「zood」 或 「food」。
建立如下表:regexp_test(string1);
字段值如下:
string1
16857845258
13856895874
13647148565
15825487565
12453654
12306
95548
95547
4004844258
a124s14d25
sq457w451
12345@
1574@1577
010-88625458
ten123c5e7nt
首先來說說regexp的用法:
如果想要找出表中的手機號碼、郵箱、**號碼,這時候我們用like就基本很難實現了,like欠缺的是數字匹配、字元匹配還有字元長度的問題,當然你可以用無數個_來標識個數,但是很困難也很容易出錯,這時用正則可以很簡單的匹配這些;
手機號碼:第一位數為1,第二位為3/5/8,之後九位就是隨意排布了,正規表示式為:』^1[358][0-9]』;
select string1
from regexp_test
where string1 regexp 『^1[3|5|8][1-9]』
結果:序號 string1
1 13856895874
2 13647148565
3 15825487565
regexp_replace函式:
把字串中的數字全部換成空值:
select string1,regexp_replace(string1,』[1-9]』,』』)
from regexp_test;
結果:日常中字元的處理掌握正則以後就將變得很簡單了。
中運用正規表示式
看到大家討論這方面的東西,作點貢獻聊表各位高手對這個版快的無私奉獻 oops 如果使用者熟悉linux下的sed awk grep或vi,那麼對正規表示式這一概念肯定不會陌生。由於它可以極大地簡化處理字串時的複雜度,因此現在已經在許多linux實用工具中得到了應用。千萬不要以為正規表示式只是perl...
正規表示式整理處
size large color red b 一 判斷輸入是否都是空格 b color size 去除所有空格 str str.replace s g,去除兩頭空格 str str.replace s s g,var var1 document.getelementbyid name 這是正則,s匹...
正規表示式簡單運用
在學習中呢,剛認識到正則的一些用處,好處,那麼在這裡就講講正規表示式的一些簡單運用。我希望能讓你們了解到什麼是正規表示式,同時能讓自己加深對正規表示式的理解。第一次看到正規表示式的時候呢,根本看不懂這是什麼。就例如 nkeyup value value.replace u4e00 u9fa5 g,o...