Sql server TSQL-获取有效的URL

Sql server TSQL-获取有效的URL,sql-server,regex,tsql,Sql Server,Regex,Tsql,我有一张这样的桌子: Url ============== www.google.com http://www.yahoo.com/ www.192.168.1.1.com 192.168.1.5 www.192.168.5.149/service.ir test.sitename.com 因此,我的问题分为两部分: 基于一种模式获取所有URL((http | ftp | https):\/\/[\w\-\\+(\.[\w\-\\+)+([\w\-\,@?^=%&;:/~\+\\\\\]

我有一张这样的桌子:

Url
==============
www.google.com
http://www.yahoo.com/
www.192.168.1.1.com
192.168.1.5
www.192.168.5.149/service.ir
test.sitename.com
因此,我的问题分为两部分:

  • 基于一种模式获取所有URL(
    (http | ftp | https):\/\/[\w\-\\+(\.[\w\-\\+)+([\w\-\,@?^=%&;:/~\+\\\\\]*[\w\-\\\\\\\\\\\\\\\\\\\\+])?
  • 格式化 无效(基于模式)
  • 所以我在第一部分提出了这样一个问题:

    select Url FROM UserWebsites
        WHERE Url like '%(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?%'
    
    但我不知道如何格式化URL


    有没有更优雅的方法可以做到这一点?

    T-SQL不是进行字符串解析的好工具——最好编写一个CLR函数并在那里完成这项工作。在一个简单的函数中,您可以用正则表达式做很多事情,而且它可能是更高效的代码(因为用T-SQL字符串运算符编写任何类似正则表达式功能的东西都需要很长时间)

    T-SQL不是进行字符串解析的好工具——最好编写一个CLR函数并在那里完成这项工作。在一个简单的函数中,您可以用正则表达式做很多事情,而且它可能是更高效的代码(因为用T-SQL字符串运算符编写任何类似正则表达式功能的东西都需要很长时间)

    在将此数据导入SQL Server之前,是否有可能清除此数据?@TimBiegeleisen很遗憾,数据已保存到数据库中。在SQL Server中,要检查正则表达式,您需要使用CLR函数-查看;)。你能解释一下你的确切意思吗。这个查询对您有用吗?您想使查询(正则表达式)变得优雅吗?或者您正在寻找内置函数?…@winner\u joiner否查询不起作用,实际上它不返回任何行。我认为应该是这样的。在将这些数据导入SQL Server之前,是否有可能清除这些数据?@TimBiegeleisen不幸的是,数据已保存到数据库中。在SQL Server中检查正则表达式时,您需要使用CLR函数-查看;)。你能解释一下你的确切意思吗。这个查询对您有用吗?您想使查询(正则表达式)变得优雅吗?或者您正在寻找内置函数?…@winner\u joiner否查询不起作用,实际上它不返回任何行。我想应该是这样的。