我的桌子看起来像这样:
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
所以我的问题分为两部分:
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
)获取所有网址。 所以我在第一部分提出了这样的查询:
select Url FROM UserWebsites
WHERE Url like '%(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?%'
但我不知道如何格式化网址。
有更优雅的方法吗?
答案 0 :(得分:0)
T-SQL不是一个用于进行字符串解析的好工具 - 你在编写CLR函数和在那里工作时要好得多。在一个简单的函数中,你可以使用RegEx做很多事情 - 它可能是更有效的代码(因为用T-SQL字符串运算符编写类似于RegEx功能的任何内容将会很长并且涉及到)。