繁体   English   中英

将字符串与充满正则表达式的列匹配

[英]Matching a string against a column full of regular expressions

我在表中有一个充满正则表达式的列。

我的代码中有一个字符串,我想找出该列中哪些正则表达式与该字符串匹配并返回这些行。

除了拉动每一行并匹配正则表达式(这是昂贵的,检查单个页面加载可能数千条记录)有没有办法在SQL中执行此操作而不是一个(或几个)查询?

输入示例:W12ABC

示例列数据

1   ^[W11][\w]+$  
2   ^[W12][\w]+$  
3   ^[W13][\w]+$ 
4   ^[W1][\w]+[A][\w]+$  
5   ^[W1][\w]+[B][\w]+$  
6   ^[W1][\w]+[C][\w]+$  

应该返回第2行和第4行。

T-SQL不提供此功能,但您可以通过使用.NET正则表达式类编写CLR函数在SQL Server中启用它。 这里有一篇很好的文章解释了如何做到这一点。

如果您对通配符持开放态度,则可以存储适用于LIKE语法的模式:“W12%”或“W%ABC”。 您的查询将如下所示:

SELECT * FROM表'W12ABC'LIKE列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM