检查两个字符串是否包含相同的模式

时间:2012-11-28 14:20:11

标签: c# regex string-matching

我的应用程序需要在输入字符串和存储在我的数据库中的字符串之间使用字符串匹配功能。这些字符串涉及产品维度(如长度,高度等)。我的目标是检查输入的字符串是否已存在于我的数据库中,但可能还有其他模式,例如:

输入:如果我的数据库中有“vis 4X40”或“vis 4 x 40”或“vis 4 * 40”,则“vis 4 * 40”应该返回true。

我发现的唯一方法是使用正则表达式来标准化我的数据库以替换模式,如:

 \d+ *[xX*] *\d+

使用标准化的(例如NumberXNumber),对输入中的字符串执行相同操作然后尝试查找它。但是我想知道是否已经存在任何工具并允许我这样做。 (我在C#.NET V4中工作)

2 个答案:

答案 0 :(得分:1)

更好的方法是连接两个数据然后匹配它们

string target=inputString+"#"+storedString;

if(Regex.IsMatch(target,"(\d+) *[xX*] *(\d+)#\1 *([xX*]) *\2"))
        //the string is in the database
else
       //it is not

答案 1 :(得分:0)

只需使用用户提供的通配符,将*替换为%并查询您的表格:SELECT col FROM table WHERE col LIKE 'vis 4%40'

确保使用参数执行查询。