如何在Lua中查找方括号字符?

所以我尝试在字符串中查找方括号:

s = "testing [something] something else"
x,y = string.find(s,"[")

这会给我一个错误:malformed pattern (missing ']')。

我还尝试过:

x,y = string.find(s,"\[")

给我同样的错误。

还有这个:

x,y = string.find(s,"\\[")

在这种情况下,x和y都是nil。

有没有关于如何正确执行此操作的想法?提前致谢。

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

点赞
stackoverflow用户5696
stackoverflow用户5696

使用string.find的第四个参数,可以关闭模式匹配。

x,y = string.find(s,“[”,niltrue
2011-05-20 20:51:12
stackoverflow用户501459
stackoverflow用户501459

John的解决方案有效 - 关闭模式匹配。

在Lua中,使用字符进行转义,可以实现你想要做的事情 - 转义[

x,y = string.find(s,'%['

此外,在Lua中,所有字符串都有字符串模块作为它们的元表,因此你可以这样写:

x,y = s:find'%['

甚至可以这样写:

x,y = s:find'%['
2011-05-20 20:55:29