2011-11-29 168 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」

相關問題