How to string.find the square bracket character in lua?

允我心安 提交于 2019-12-04 19:56:49

问题


So I'm trying to find square brackets inside a string:

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

which gives me an error: malformed pattern (missing ']').

I also tried:

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

giving me the same error.

And this:

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

in this case x and y are nil.

Any thoughts on how to do this properly? Thanks in advance.


回答1:


John's answer will work -- turning off pattern matching.

What you're trying to do -- escape the [ -- is done with the % character in Lua:

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

Also strings in Lua all have the string module as their metatable, so you could just say:

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

or even:

 x,y = s:find'%['



回答2:


Use the fourth argument to string.find, which turns off pattern-matching.

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


来源:https://stackoverflow.com/questions/6077423/how-to-string-find-the-square-bracket-character-in-lua

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!