正则表达式应用--利用正则替换字符
2005-09-27 10:25
435 查看
原贴发表在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
end
exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @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
end
exec @hr = sp_OADestroy @objRegExp
IF @hr <> 0 begin
return null
end
return @result
end
GO
/*
利用正则表达式替换字符
改编自国外一个站点的一篇文章,记不清了
--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
end
exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @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
end
exec @hr = sp_OADestroy @objRegExp
IF @hr <> 0 begin
return null
end
return @result
end
GO
相关文章推荐
- js利用正则表达式进行字符替换
- js 利用正则表达式替换字符串中指定字符
- dreamweaver利用正则表达式指替换字符
- C# 利用正则表达式进行忽略大小写的字符串替换的应用--自定义高亮显示
- C# 利用正则表达式进行忽略大小写的字符串替换的应用--自定义高亮显示
- C# 利用正则表达式进行忽略大小写的字符串替换的应用
- 利用正则表达式提取固定字符之间的字符串
- 正则表达式 特殊字符应用分析[简单详细入门必看]
- 使用正则表达式替换报表名称中的特殊字符(推荐)
- 利用正则表达式进行文本替换,编辑工具使用UE
- JS正则表达式替换所有字符
- JS利用正则配合replace替换指定字符
- 笔记_正则表达式替换字符串中特定范围内的字符。
- C#中如何利用正则表达式判断字符
- Eclipse利用正则表达式一键替换
- Sublime Text 高级替换功能 Demo - 利用正则表达式修改内容
- 几个范畴中的字符替换(正则表达式和函数的结合运用)
- 正则表达式替换字符
- Javascript正则表达式把所有空格替换为指定字符
- JS利用正则替换指定字符