Ton*_*ING 6 regex sql t-sql sql-server
我需要在SQL服务器中替换字符串.我知道t-sql并不完全支持这种正则表达式替换功能,但我们可以使用这样的功能PATINDEX.
基本上,我需要的是用www或www [0-9]替换URL开头的字符串,例如:
我试过:PATINDEX('(www[0-9]?)\.%',@url)但它与我需要的不符.有没有人知道如何在没有功能CLR的情况下简单地做到这一点?
您可以
with t(f) as (
select 'www.foo.com' union
select 'www9.bar.com' union
select 'wwwz.quz.com' union
select 'mail.xxx.com'
)
select
case when patindex('www.%', f) + patindex('www[0-9].%', f) = 0 then f else substring(f, 1 + charindex('.', f), len(f)) end
from t
Run Code Online (Sandbox Code Playgroud)
对于
(No column name)
mail.xxx.com
foo.com
bar.com
wwwz.quz.com
Run Code Online (Sandbox Code Playgroud)