2011-11-29 177 views
0

我在我的数据库中有大约3000条记录的表格。此表中的一列包含包含网址的数据。我希望将这些URL转换为超链接,以便在内容呈现到网页上时,它是链接到URL的锚点元素。将URL转换为超链接

的内容。例如可能是这样:

Lorem ipsum http://domain.com dolor sit amet, consectetur adipiscing elit. Cras consequat nisl vitae leo pellentesque tempus et id nunc. Vestibulum varius facilisis fringilla 

我想将它更改为:

Lorem ipsum <a href='http://domain.com' target='_blank'>http://domain.com</a> dolor sit amet, consectetur adipiscing elit. Cras consequat nisl vitae leo pellentesque tempus et id nunc. Vestibulum varius facilisis fringilla 

我试着这样做:

UPDATE TableA 
SET Content=REPLACE(Content, "http://domain.com", "<a href='http://domain.com' target='_blank'>http://domain.com</a>") 

但这只是适用于那一个确切的URL,而我需要它为任何URL起作用http://

这在SQL Server中可能吗?

+0

当然你想这样做?拥有一个URL链接元素会更有用。在渲染之前,你不能用html包装它吗? – musefan

+0

@musefan我同意,但这个系统使用Telerik编辑器来允许用户自己添加超链接,所以我希望现有的数据是一致的。 – Curt

回答

2

您可以使用您选择的编程语言,选择所有条目,用正则表达式替换每行中的URL并更新每行。

如果您想直接使用SQL Server,则可以尝试在数据库服务器上实现CLR功能。下面的链接解释如何做到这一点: http://weblogs.sqlteam.com/jeffs/archive/2007/04/27/SQL-2005-Regular-Expression-Replace.aspx

然后你会使用模式匹配的URL,像

^http://([a-zA-Z0-9_\-]+)([\.][a-zA-Z0-9_\-]+)+([/][a-zA-Z0-9\~\(\)_\-]*)+([\.][a-zA-Z0-9\(\)_\-]+)*$ 

(即正则表达式的作品,但很可能无法完成)

0

是的,这是可能的。你将不得不解析你的字符串并拆分你需要的部分。看看t-sql字符函数。主要是“charindex”和“substring”

相关问题