有没有模式的Lua string.find

mos*_*mos 5 string lua lua-patterns

我应用了一个函数,但看起来很糟糕.

function find_without_pattern(s1,s2)
    for i =1,#s1-#s2+1 do
        local t = string.sub(s1,i,#s2+i-1)
        if t == s2 then
            return i,i+#s2-1
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

hjp*_*r92 7

string.find方法提供可选的第4个参数以自行强制执行明文搜索.

例如:

string.find("he#.*o", "e#.*o", 1, true)
Run Code Online (Sandbox Code Playgroud)

会给你正确的结果.

引用Lua手册页:

string.find (s, pattern [, init [, plain]])

的值true作为第四个可选的参数plain关闭配套设施的格局,因此函数做了简单的"发现串"操作,在模式被认为魔术没有字符.注意,如果plain给出,那么也init必须给出.