9

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

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
4

1 回答 1

10

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

例如:

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

会给你正确的结果。

引用 Lua 手册页:

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

true作为第四个可选参数的值plain将关闭模式匹配工具,因此该函数执行简单的“查找子字符串”操作,模式中的任何字符都不会被视为魔术。请注意,如果plain给出,那么init也必须给出。

于 2013-09-24T06:44:27.560 回答