数据库中的数据:各种用户将数据放入我的应用程序(作为来自不同区域的字符串),此数据存储在[SerialID#] DB column
中。内容适用于例如条形码,序列号等。
编辑:数据搜索,稍后另一位用户返回并搜索相同的产品,但输入他的搜索子/字符串和/或字符。
在针对user entered string
进行搜索[SerialID#] DB column
时,我需要匹配字母数字内容。 (通过在两者 DB / target和用户字符串/源代码中删除其他字符)。
我必须这样做,因为一些供应商A的序列与供应商B的序列不同,我无法控制用户如何将数据放入我的应用程序。
我在SQL服务器和.NET服务器端只搜索字符串中的以下两种情况时需要帮助。
例如
B ABCLKSAL1930239923-938 2998/84
==匹配ABClksAL1930239923938299884
给定源字符串和目标字符串,如带有破折号/连字符的条形码/序列号;
-
/ \
或
?我试过这个[A-Za-z0-9]
,但无法弄清楚如何匹配每1,2和3的内容。
答案 0 :(得分:0)
选中此问题stackoverflow.com/a/31693412/1080354,使用T-SQL
在.net
中实施正则表达式支持。基本上,您可以在.net
中创建此类函数,并在C#
和T-SQL
代码中使用它。由于T-SQL
中没有对正则表达式的内置支持,我相信这是要走的路。如果您有任何问题,请告诉我
我们的想法是在T-SQL语句中使用.net代码。在示例中,我正在创建regexreplace函数,但您可以查看链接以获取更多示例。您可以在.net上创建自己的函数,并将它们部署到SQL Server实例。 - gotqn
答案 1 :(得分:0)
我不认为可以选择更改您的应用以写入两个值(在两个单独的列中):输入的原始字符串,以及匹配1.上面的第二个字符串?
我建议在数据库中存储一个“剥离”形式的内容,作为预处理步骤(我想你可以用计算列做到这一点),然后在你的比较中使用保证的简化列。 - 克里斯托弗史蒂文森