如何在lua中string.find方括号字符?

时间:2011-05-20 20:47:16

标签: string lua pattern-matching

所以我试图在字符串中找到方括号:

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

这给了我一个错误:格式错误的模式(缺少']')。

我也尝试过:

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

给我同样的错误。

而且:

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

在这种情况下,x和y为零。

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

2 个答案:

答案 0 :(得分:12)

John的回答将起作用 - 关闭模式匹配。

你想要做什么 - 逃避[ - 是用Lua中的%字符完成的:

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

Lua中的字符串也都有字符串模块作为其元表,所以你可以说:

 x,y = s:find('%[')

甚至:

 x,y = s:find'%['

答案 1 :(得分:4)

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

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