2010-11-20 28 views
0

電子郵件我在包含字符串如表列有這 - 「行政作家的電子郵件是[email protected],樓盤@ 4567 ......」T-SQL正則表達式選擇從字符串

所有我需要從字符串中獲取電子郵件。我一直在使用名爲editpad pro的優秀軟件輕鬆完成此操作,但現在我正在處理大約1000萬條記錄,並且沒有編輯器支持這種音量。

如何在2008年編寫T-SQL來選擇正則表達式匹配值? 查找有效電子郵件的正則表達式是「\ b [A-Z0-9 ._%+ - ] * @ [A-Z0-9 .-] +。[AZ] {2,4} \ b」

非常感謝。

回答

3

您可以使用grep從大量的文本中提取所有的比賽:

grep <regexp> <filename> 

一個簡單的方法來獲得grep在Windows上運行是下載的Git MingW32 version

+0

+1對於我永遠不會考慮的方法。 – 2010-11-20 18:17:41

+0

謝謝,我會試一試 – user219628 2010-11-20 19:18:51

1

SQL Server本身不支持正則表達式 - 您必須使用CLR功能來擴展SQL Server 2005+功能,例如正則表達式支持。 This link提供了可以部署的組件,但大多數商店不允許CLR。

CHARINDEX可能有幫助,但PATINDEX有。

如果你需要得到一個值,你應該真的把它存儲在它自己的列中而不是文本中的某個地方。

+0

感謝您的信息,它有幫助。 – user219628 2010-11-20 19:20:23

1

我認爲你可能會發現比tsql更有效的方法,但如果這是你可以使用的工具,here's an article與一些函數,只使用tsql函數和ole自動化創建正則表達式支持。

+0

謝謝,這有幫助。 – user219628 2010-11-20 19:19:08