如何改成模糊匹配?

来源:百度知道 编辑:UC知道 时间:2024/06/17 12:56:50
首先声明,我需要的不是VB代码,我需要的是ASP脚本。
下面是代码,我有标出需要修改的部分,是 If tmp = S(I) Then 这里需要改。
怎么修改这里,让S(I)中只要有一段和tmp的数据相同,就写进T2,比如tmp为"goodokhaha",而S(I)值为"dokha",就把dokha写进c.txt ,当然必须有联系的一段相同,如果S(I)值为"dukha"是不能算相同的。

<%
Dim F, T1, T2
Dim I, L, S(), tmp

Set F = Server.CreateObject("Scripting.FileSystemObject")

'读第二个文件
Set T2 = F.OpenTextFile(Server.MapPath("b.txt"))
Do While T2.AtEndOfLine = False
ReDim Preserve S(L)
S(L) = T2.ReadLine
L = L + 1
Loop
T2.Close

'读第一个文件并写第三个文件
Set T2 = F.CreateTextFile(Server.MapPath("c.txt"))
Set T1 = F.OpenTextFile(Server.MapPath("a.txt"))
Do While T1.AtEndOfLine = False
tmp = T1.ReadLine
For I = 0 To L - 1
If tmp = S(I) Then '怎么修改这里,让S(I)中只要有一段和tmp的数据相同,就写进T2,比如tmp为"goodokhaha",而S(I)值为"dokha",就把dokha写进c.txt
T2.WriteLine

二楼的。这好象不仅仅是大小的问题吧 你看看楼主的问题

比如tmp为"goodokhaha",而S(I)值为"dokha",dokha就属于包含在goodokhaha里,那么就把dokha写进c.txt ,当然必须有联系的一段相同,如果S(I)值为"dukha"是不能算相同的。

您 可以尝试着有“like”来实现,如:
tmp like s(1)
这样,您试试可以吗?

你可以改成:(UCase是转换成大写,即搜索不区分大小写)
if InStr(1,UCase(S(I)),UCase(tmp), vbTextCompare)>0 then