alter function [dbo].[wholewordreplace](
@s nvarchar(1000) --要搜尋的字串
,@s1 nvarchar(200) --要查詢的字串
,@s2 nvarchar(200) --替換字串
)returns nvarchar(1000)
asbegin
declare
@result nvarchar(1000) --返回值
,@prec nchar(1) --前乙個字元
,@succ nchar(1) --後乙個字元
,@i int --位置
;select @i=charindex(@s1, @s, 1);
while @i>0
begin
select @prec=substring(@s,@i-1,1)
,@succ=substring(@s,@i+len(@s1),1);
--判斷此字串的前後字元, 在前後字元都不是字母、數字、_、@、#、$(命名規則中所有允許的字元)的情況下,對其替換
if (@prec < 'a' or @prec > 'z') and (@prec < 'a' or @prec > 'z')
and (@prec < '0' or @prec > '9')
and (@prec!='_') and (@prec!='@') and (@prec!='#') and (@prec!='$')
and (@succ < 'a' or @succ > 'z') and (@succ < 'a' or @succ > 'z')
and (@succ < '0' or @succ > '9')
and (@succ!='_') and (@succ!='@') and (@succ!='#') and (@succ!='$')
begin
select @s = stuff(@s, @i, len(@s1), @s2), @i=@i+len(@s2)-1;
endselect @i=charindex(@s1, @s, @i+1);
endselect @result=@s
return @result
end
乙個全字匹配的另類演算法
如果要從乙個字串中匹配某個指定字串 即查詢指定字串是否在某個字串中 那麼除了按字元逐個搜尋外,還有乙個另類通俗的演算法。下面請跟我來。如下 僅給出delphi的實現 functionsearchstr bestr,substr string integer var oldlength integer...
使用mysql的replace函式替換字串
最近在研究cms,在資料轉換的時候需要用到mysql的replace函式,這裡簡單介紹一下!比如你要將 表 tb1裡面的 f1欄位的abc替換為def update tb1 set f1 replace f1,abc def replace str,from str,to str 在字串 str 中...
使用mysql的replace函式替換字串
最近在研究cms,在資料轉換的時候需要用到mysql的replace函式,這裡簡單介紹一下!比如你要將 表 tb1裡面的 f1欄位的abc替換為def update tb1 set f1 replace f1,abc def replace str,from str,to str 在字串 str 中...