Lua字符串查找(包含特殊字符)

参数str 被查找的字符串
参数item 需要查找的字符
针对lua中%¥字符的特殊用法导致 参数item 经常被转义,以至于查找字符串错误
下面的方法是按字符转byte一个一个查找的,已经测试过了

function string.contains(str, item)
    local t = {}
    local l = {}
    local index = 0
    for i = 1, string.len(str) do
        table.insert(t, string.byte(string.sub(str, i, i)))
    end

    for i = 1, string.len(item) do
        table.insert(l, string.byte(string.sub(item, i, i)))
    end
    if #l > #t then
        return false
    end

    for k, v1 in pairs(t) do
        index = index + 1
        if v1 == l[1] then
            local iscontens = true
            for i = 1, #l do
                if t[index + i - 1] ~= l[i] then
                    iscontens = false
                end
            end
            if iscontens then
                return iscontens
            end
        end
    end
    return false
end

测试
a=“接jdf到该…¥…&…%23&¥%&”
b="%23"
print(string.contains(a,b))
结果
true

你可能感兴趣的:(lua,lua,字符串,特殊字符,查找)