MySQL 字串中的數字 英文本元 漢字提取

2021-08-23 12:13:36 字數 2222 閱讀 9702

在進行字串處理時,常常需要提取其中某一型別的字元,有時候需要提取其中的數字,有時需要提取其中的英文本元,而有時候則需要提取其中的中文字元。

這裡利用正則匹配,實現了該功能。

廢話少說,直接上碼:

delimiter $$

drop function if exists `num_char_extract`$$

create function `num_char_extract`(varstring varchar(100)charset utf8, flag int) returns varchar(50) charset utf8

begin

declare len int default 0;

declare tmp varchar(100) default '';

set len=char_length(varstring);

if flag = 0

then

while len > 0 do

if mid(varstring,len,1)regexp'[0-9]' then

set tmp=concat(tmp,mid(varstring,len,1));

end if;

set len = len - 1;

end while;

elseif flag=1

then

while len > 0 do

if (mid(varstring,len,1)regexp '[a-za-z]')

then

set tmp=concat(tmp,mid(varstring,len,1));

end if;

set len = len - 1;

end while;

elseif flag=2

then

while len > 0 do

if ( (mid(varstring,len,1)regexp'[0-9]')

or (mid(varstring,len,1)regexp '[a-za-z]') )

then

set tmp=concat(tmp,mid(varstring,len,1));

end if;

set len = len - 1;

end while;

elseif flag=3

then

while len > 0 do

if not (mid(varstring,len,1)regexp '^[u0391-uffe5]')

then

set tmp=concat(tmp,mid(varstring,len,1));

end if;

set len = len - 1;

end while;

else

set tmp = 'error: the second paramter should be in (0,1,2,3)';

return tmp;

end if;

return reverse(tmp);

end$$

delimiter ;

利用上述**,在mysql中建立乙個名為num_char_extract的函式,即可通過呼叫該函式進行字元提取。

使用方法如下:

(1) 第二個引數為0:代表提取數字

(2) 第二個引數為1:代表提取字母

(3) 第二個引數為2:代表提取數字+字母

(4) 第二個引數為3:代表提取漢字

(5) 第二個引數為其他數字:列印錯誤提示

利用這種方法,大家就可以在工作、學習中去按照自己想要的格式從字串中提取字元了~

字串漢字英文數字判斷

在專案中用到過.在字串中有標點或其它字元,而只需要得到數字,漢字,英文這三種字元,所以需要過濾一下,如下.找出字串中的數字英文中文 param s return public static string specialfilters string s else if isnumber s.subst...

C 獲取字串中的英文本母

string str20 abc123 string strsplit1,strsplit2 取出字串中所有的英文本母 strsplit1 regex.replace str20,0 9 regexoptions.ignorecase 取出字串中所有的數字 strsplit2 regex.repla...

python中從字串中擷取中文和英文本元

coding utf 8 encoding utf8 import os,sys,re test str1 蒙派克e test str2 新abc蒙派克 test s1 test str1.decode utf 8 test s2 test str2.decode utf 8 pat 1 re.co...