2010-08-30 230 views
0

我有一个表,我需要做一些比较工作的数据库和sql服务器是有限的做手段进行字符串比较。我把所有的数据放入列表中,并想到使用string.compare或string.contains,但似乎没有正常工作。也许有人对如何做到这一点有更好的建议。这是大量的数据,我需要能够进行一些匹配,以避免手动检查每个字符串。这里是示例数据和代码;字符串比较

string 1 
adage.com via Drudge Report 
Airdrie & Coatbridge Advertiser 
Silicon 
A NOVO SA 

string 2 
adage.com 
Airdrie and Coatbridge Advertiser 
Silicon.com 
The A Novo 

现在这些是典型的例子,应该匹配,但我不知道如何得到这个工作。

粗糙的代码实现:

For i As Integer = 0 To list1.Count - 1 
      For j As Integer = 0 To list2.Count - 1 
       If list1.Item(i).Contains(list2.Item(j)) Then 
        outfile.WriteLine("found match") 

       End If 
      Next 
     Next 

回答

1

如果我理解你的要求,你想匹配,如果任一A是B的子串,或反之亦然。所以你不需要:

If list1.Item(i).Contains(list2.Item(j)) OR list2.Item(j).Contains(list1.Item(i)) 

以上将做一个区分大小写的比较。如果你想有一个区分大小写的比较,那么你可以做这样的事情:

If list1.Item(i).ToLower().Contains(list2.Item(j).ToLower()) OR 
    list2.Item(j).ToLower().Contains(list1.Item(i).ToLower()) 
+0

感谢您的回复。我必须关注案件吗?它会在字母大小写中检测到差异吗? – vbNewbie 2010-08-30 15:20:33

+0

@vbNewBie - 查看我的最新编辑。 – dcp 2010-08-30 15:22:38

0

你会想在你的SQL使用WHERE string1 LIKE '%' + string2 + '%'