原貼發表在http://community.csdn.net/expert/topic/4236/4236065.xml?temp=.43771.
/*利用正規表示式替換字元
改編自國外乙個站點的一篇文章,記不清了
--vivianfdlpw 2005.9(引用請保留此資訊)
呼叫:1.獲取字串中的英文本元
declare @str varchar(100)
set @str='xyz123z5'
select dbo.regexreplace(@str,'[^a-za-z]','',1,1)
2.獲取字串中的英文本元長度
declare @str varchar(100)
set @str='xyz123z5'
select len(dbo.regexreplace(@str,'[^a-za-z]','',1,1))
*/create function dbo.regexreplace
(@source varchar(5000), --原字串
@regexp varchar(1000), --正規表示式
@replace varchar(1000), --替換值
@globalreplace bit = 0, --是否是全域性替換
@ignorecase bit = 0 --是否忽略大小寫
)returns varchar(1000) as
begin
declare @hr integer
declare @objregexp integer
declare @result varchar(5000)
exec @hr = sp_oacreate 'vbscript.regexp', @objregexp output
if @hr <> 0 begin
exec @hr = sp_oadestroy @objregexp
return null
endexec @hr = sp_oasetproperty @objregexp, 'pattern', @regexp
if @hr <> 0 begin
exec @hr = sp_oadestroy @objregexp
return null
endexec @hr = sp_oasetproperty @objregexp, 'global', @globalreplace
if @hr <> 0 begin
exec @hr = sp_oadestroy @objregexp
return null
endexec @hr = sp_oasetproperty @objregexp, 'ignorecase', @ignorecase
if @hr <> 0 begin
exec @hr = sp_oadestroy @objregexp
return null
end
exec @hr = sp_oamethod @objregexp, 'replace', @result output, @source, @replace
if @hr <> 0 begin
exec @hr = sp_oadestroy @objregexp
return null
endexec @hr = sp_oadestroy @objregexp
if @hr <> 0 begin
return null
endreturn @result
endgo
正規表示式替換
正規表示式替換 每行的資料格式為 vcbi zuuu 001a465 kakid legos 要求變為格式為 vcbizuuu001 a465 kakid legos 替換掉第一部分和第二部分中間的空格,第二部分和第三部分中間的空格,其他的保持乙個空格 string originalstring v...
正規表示式 替換
正規表示式 替換 正規表示式 符合一定規則的而表示式.作用 用於專門操作字串。特點 用於一些特定的符號來表示一些 操作。這樣就簡化書寫。所以學習正規表示式 好處 可以簡化對字串的複雜操作。弊端 符號定義越多,正則越長,閱讀性越差 具體操作功能 1,匹配 string matches 方法.用規則整個...
正規表示式 替換
好了,現在終於到了解決3位或4位區號問題的時間了。正規表示式裡的替換指的是有幾種規則,如果滿足其中任意一種規則都應該當成匹配,具體方法是用 把不同的規則分隔開。聽不明白?沒關係,看例子 0 d d 0 d d 這個表示式能匹配兩種以連字型大小分隔的 號碼 一種是三位區號,8位本地號 如010 123...