Как струнные.найти символ квадратной скобки в lua?

поэтому я пытаюсь найти квадратные скобки внутри строки:

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

что дает мне ошибку: искаженный шаблон (отсутствует ']').

Я тоже пробовал:

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

дает мне ту же ошибку.

и так:

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

в этом случае X и y равны нулю.

есть мысли о том, как это сделать правильно? Спасибо заранее.

2 ответов


Джон будет работать-выключение шаблону.

то, что вы пытаетесь сделать -- побег [ -- покончено с % характер в Lua:

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

также строки в Lua все строки модуля, как их метатаблиц, так что вы могли бы просто сказать:

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

или еще:

 x,y = s:find'%['

используйте четвертый аргумент для string.find, который отключает сопоставление шаблонов.

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