T-SQL正则表达式选择从字符串

问题描述:

电子邮件我在包含字符串如表列有这 - “行政作家的电子邮件是[email protected],楼盘@ 4567 ......”T-SQL正则表达式选择从字符串

所有我需要从字符串中获取电子邮件。我一直在使用名为editpad pro的优秀软件轻松完成此操作,但现在我正在处理大约1000万条记录,并且没有编辑器支持这种音量。

如何在2008年编写T-SQL来选择正则表达式匹配值? 查找有效电子邮件的正则表达式是“\ b [A-Z0-9 ._%+ - ] * @ [A-Z0-9 .-] +。[AZ] {2,4} \ b”

非常感谢。

您可以使用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

SQL Server本身不支持正则表达式 - 您必须使用CLR功能来扩展SQL Server 2005+功能,例如正则表达式支持。 This link提供了可以部署的组件,但大多数商店不允许CLR。

CHARINDEX可能有帮助,但PATINDEX有。

如果你需要得到一个值,你应该真的把它存储在它自己的列中而不是文本中的某个地方。

+0

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

我认为你可能会发现比tsql更有效的方法,但如果这是你可以使用的工具,here's an article与一些函数,只使用tsql函数和ole自动化创建正则表达式支持。

+0

谢谢,这有帮助。 – user219628 2010-11-20 19:19:08