是否有不使用模式的Lua字符串查找函数?

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

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
点赞
用户1190388
用户1190388

string.find 方法提供了一个可选的第四个参数来强制进行纯文本搜索

例如:

string.find("he#.*o", "e#.*o", 1, true)

将会给出正确的结果。

引用 Lua 手册页面:

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

第四个可选参数 plain 如果设置为 true,则关闭模式匹配功能,这样函数就只是一个简单的“查找子字符串”的操作,模式中的字符不能被视为特殊字符。注意,如果给出了 plain,则还必须给出 init

2013-09-24 06:44:27