1、提取科室中,"科"字前面的內容
regexp_extract(t1.doctor_department_format,'(.*)科')
2、去除字串中的數字
第一種方式:
select regexp_extract('張三99','(.*?)\\d')
第二種方式:(適用於所有漢字+數字的形式)
select regexp_replace('張0三2','(\\d)','')
3、提取括號中的內容
select regexp_extract('張三(骨科)','\\((.*?)\\)')
5、未完待續。。。。。。
知識補充:
一、表示式中的引數詳情
二、hive中對於轉義的理解
轉義指的是:比如說 「.」代表的是任意乙個字元,但是假如你就要匹配「.」這樣乙個字元,那樣需要轉義,
還有,d代表乙個字母,但是為了方便,寫了乙個簡單的表示式來表示所有的數字,用轉義的小寫d來表示。
但是各個環境對轉義符有所不同,比如一般來說\代表轉義,但是hive中用\\來表示轉義,可能還有的環境用/來表示轉義
三、常用的元字元
常用元字元 **說明--------------------------------------
. 匹配除換行符以外的任意字元
\w 匹配字母或數字或下劃線
\s 匹配任意的空白符
\d 匹配數字
\b 匹配單詞的開始或結束
^ 匹配字串的開始
$ 匹配字串的結束
常用限定符 **/語法說明------------------------------
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
重複n次
重複n次或更多次
重複n到m次
常用反義詞 **/語法說明----------------------------
\w 匹配任意不是字母,數字,下劃線,漢字的字元
\s 匹配任意不是空白符的字元
\d 匹配任意非數字的字元
\b 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x以外的任意字元
[^aeiou] 匹配除了aeiou這幾個字母以外的任意字元
hive開發遇到的問題
問題1 問下,hive 資料通過discp 拷貝後 資料為啥查不出來,新的集群在拷貝前已建立新庫 是分割槽表 解決方法 修復下分割槽就好了 msck repair table table name 問題2 hive insert into 插入資料後表中原來的資料丟失了 是否在表名加了這種 號 如果...
hive中建立udf函式及遇到的坑
udf開發 自定義標準函式 自定義函式步驟 第一步 整合udf類,重寫evaluate方法 換為小寫字母 import org.apache.hadoop.hive.ql.exec.udf import org.apache.hadoop.io.text public class str2lower...
hive正則中3種括號的區別
小括號有兩種含義,1是原子組,2是可以將括號內的東西作為值返回 中括號代表字符集。a z 代表乙個字母,這個字母在a到z的範圍內。大括號代表重複數量,a z 代表一到二個字母,這兩個字母都在a到z的範圍內 1 小括號 匹配小括號內的字串,可以是乙個,也可以是多個,常跟 或 符號搭配使用,是多選結構的...