Lua - 如何找到1或2个字符差异的子字符串

Sat*_*hJM 2 string lua string-matching

说我有一个字符串

local a = "Hello universe"
Run Code Online (Sandbox Code Playgroud)

我发现子串"宇宙"

a:find("universe")
Run Code Online (Sandbox Code Playgroud)

现在,假设字符串是

local a = "un#verse"
Run Code Online (Sandbox Code Playgroud)

要搜索的字符串是Universe; 但子字符串因单个字符而异.显然Lua忽略了它.

即使单个字符存在差异,如何使函数找到字符串?

Ale*_*ysh 5

如果您知道角色的位置,请使用.而不是该角色:a:find("un.verse")

但是,看起来您正在寻找模糊字符串搜索.它不属于Lua string库的范围.您可能想要从这篇文章开始:http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html

至于Lua模糊搜索实现 - 我没有使用任何,但googing"lua模糊搜索"给出了一些结果.一些是基于这篇论文:http://web.archive.org/web/20070518080535/http : //www.heise.de/ct/english/97/04/386/

试试https://github.com/ajsher/luafuzzy.