在進行字串處理時,常常需要提取其中某一型別的字元,有時候需要提取其中的數字,有時需要提取其中的英文本元,而有時候則需要提取其中的中文字元。
這裡利用正則匹配,實現了該功能。
廢話少說,直接上碼:
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...