如何在lua中验证模式

时间:2011-02-12 14:13:36

标签: lua pattern-matching validation

我目前正在lua中创建一个搜索功能,它基本上只是浏览项目列表并以特定方式处理与输入字符串匹配的项目。 我使用string.find(sourceString, inputString)来识别项目。

只要用户在文本字段中输入内容,就会调用该函数,因此如果他尝试输入模式,则在使用集合或捕获时会发生这样的情况:当搜索字符串只包含[或{时{1}}(没有关闭等效的原因会引发错误。

解决这个问题的最佳方法我认为将输入验证为有效模式,但我不知道如何做到这一点。 Lua本身似乎没有包含这种方法,我对如何以一种或多或少的高效方式检查它自己有点困惑。感谢您的帮助和想法提前:))

2 个答案:

答案 0 :(得分:3)

您应该使用string.find将呼叫包裹到pcall以捕获错误。

local status, result = pcall(string.find, sourceString, inputString)
if not status then
    -- bad pattern logic, error message is in result
else
    -- good pattern logic, result contains the start index
end

答案 1 :(得分:1)

请参阅this了解模式转义函数(取自Lua Users wiki中的某个地方,我认为)。如果需要,您可以将其转换为验证功能。