如何在lua中验证模式。

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

每当用户在文本字段中输入内容时,都会调用该功能,因此如果尝试输入模式,则出现使用集或捕获时,当搜索字符串仅包含[a(没有相应的结尾),就会调用该函数导致异常。

我认为解决这个问题的最佳方法是验证输入是有效的模式,但我不知道如何做到这一点。Lua本身似乎没有这样的方法,我有点困惑如何以更或多或少高效的方式进行检查。 提前感谢你的帮助和想法 :)

原文链接 https://stackoverflow.com/questions/4978506

点赞
stackoverflow用户6236
stackoverflow用户6236

请参阅此处,获取模式转义函数(从Lua用户 wiki中获取,我想)。如果需要,您可以将其转换为验证函数。

2011-02-12 15:38:25
stackoverflow用户173806
stackoverflow用户173806

你应该使用 pcall 包装 string.find 的调用以捕获错误。

local status, result = pcall(string.find, sourceString, inputString)
if not status then
    -- 错误的模式逻辑,错误消息在结果中
else
    -- 良好的模式逻辑,结果包含开始索引
end
2011-02-13 03:26:06