栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL Server 2012:提取正则表达式组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server 2012:提取正则表达式组

假设实际数据不比所陈述的示例复杂,这应该在不求助于RegEx的情况下起作用:

DECLARE @posts TABLE(   post_id INT NOT NULL IDENTITY(1, 1),   post_text NVARCHAr(4000) NOT NULL,   body NVARCHAr(2048) NULL);INSERT INTO @posts (post_text, body) VALUES (N'first',          N'Visit [Google](http://google.com)');INSERT INTO @posts (post_text, body) VALUES (N'second',          N'Get an [iPhone](http://www.apple.com)');INSERT INTO @posts (post_text, body) VALUES (N'third',          N'[Example](http://example.com)');INSERT INTO @posts (post_text, body) VALUES (N'fourth',          N'This is a message');INSERT INTO @posts (post_text, body) VALUES (N'fifth',          N'I like cookies (chocolate chip)');INSERT INTO @posts (post_text, body) VALUES (N'sixth',          N'[Frankie] says ''Relax''');INSERT INTO @posts (post_text, body) VALUES (N'seventh',          NULL);SELECt p.post_text,       SUBSTRINg(       p.body,       CHARINDEX(N'](', p.body) + 2,       CHARINDEX(N')', p.body) - (CHARINDEX(N'](', p.body) + 2)     ) AS [URL]FROM   @posts pWHERe  p.body like '%[%](http%)%' ESCAPE '';

输出:

post_text  URLfirst      http://google.comsecond     http://www.apple.comthird      http://example.com

PS:
如果您 真的
想使用正则表达式,则只能通过SQLCLR完成。您可以编写自己的库或下载预完成的库。我写了一个这样的库SQL#,它具有包含RegEx函数的免费版本。但是,只有在找不到T-
SQL解决方案的情况下才应使用这些方法,到目前为止,这里不是这种情况。




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号