Lua 使用string.find
我正在尝试编写一些代码,查看两个数据集并匹配它们(如果匹配),目前我使用的是string.find,这是一种工作,但非常严格。例如:它适用于检查1,但不适用于检查2/3,因为提要中有空格或其他单词。我想把这三个球都打回去,但我怎么能做到呢?(可能匹配超过4个字符?)Lua 使用string.find,lua,coronasdk,Lua,Coronasdk,我正在尝试编写一些代码,查看两个数据集并匹配它们(如果匹配),目前我使用的是string.find,这是一种工作,但非常严格。例如:它适用于检查1,但不适用于检查2/3,因为提要中有空格或其他单词。我想把这三个球都打回去,但我怎么能做到呢?(可能匹配超过4个字符?) PS:我尝试过gfind、gmatch、match,但它们没有成功find只进行直接匹配,因此如果您正在搜索的字符串不是您正在搜索的子字符串(对字符集和特殊字符进行了一些模式处理),则不会得到匹配 如果您对匹配示例中列出的字符串感兴
PS:我尝试过gfind、gmatch、match,但它们没有成功
find
只进行直接匹配,因此如果您正在搜索的字符串不是您正在搜索的子字符串(对字符集和特殊字符进行了一些模式处理),则不会得到匹配
如果您对匹配示例中列出的字符串感兴趣,则需要查看模糊搜索。也可能有帮助。我已经实现了第二个示例中列出的算法,但是基于.Lua的
字符串的二元和三元匹配得到了更好的结果。find
不仅适用于精确的字符串,也适用于模式。但是语法与“检查”中的语法有点不同。您希望check2是“jan.+”
以匹配“jan”,后跟一个或多个字符。您的第三张支票必须是jan.+kevin
。在这里,点代表任何字符,而下面的加号表示这可能是一个或多个字符的序列。更多信息请访问
check1 = 'jan'
check2 = 'janAnd'
check3 = 'jan kevin'
input = 'jan is friends with kevin'
if string.find(input.. "" , check1 ) then
print("match on jan")
end
if string.find( input.. "" , check2 ) then
print("match on jan and")
end
if string.find( input.. "" , check3 ) then
print("match on jan kevin")
end