如何高效地从左到右匹配字符串子串?
如何从左到右匹配一个字符串的部分内容?
在编程中,经常需要检查一个字符串是否包含另一个字符串的子集。通常情况下,使用 instr 函数或 like 运算符可以实现此目的。然而,在某些情况下,需要从左到右匹配字符串的一部分,并且只有子串在目标字符串的左侧才算匹配。
乔治老师的代码可以从左到右匹配一部分内容,但将其改写后,只能完全匹配了。为了恢复从左到右匹配的功能,可以进行以下修改:
Dim aa, ipList, ip, found, dbIPListaa = Request.ServerVariables("REMOTE_ADDR")' 从数据库中获取 IP 地址列表dbIPList = Rs("ip")' 为了处理两种格式的数据库内容,去除双引号dbIPList = Replace(dbIPList, """", "")' 将 IP 地址列表分割为数组ipList = Split(dbIPList, ",")found = FalseFor Each ip In ipList ' 修剪空白字符 ip = Trim(ip) ' 检查 aa 是否包含 ip If InStr(aa, ip) > 0 Then found = True Exit For End IfNextIf found Then Response.Write "ok" Response.EndEnd If
通过增加一个去除双引号的操作,可以确保以两种格式存储的数据库内容都能正常处理。