Использование "("?) В ​​Lua с string.find и значением, которое он возвращает

a, i, c = string.find(s, '"("?)', i + 1)

Какова роль ? Вот? Я считаю, что это проверялось на двойные кавычки, но я действительно не понимаю, как именно "("?),

Я прочитал это string.find возвращает начальный и конечный индексы сопоставленного шаблона. Но согласно приведенной выше строке кода, a, i а также c3 значения возвращаются. Какое третье значение возвращается здесь?

1 ответ

Решение

? соответствует необязательному символу, т. е. нулю или одному вхождению символа. Итак, шаблон "("?) соответствует " с последующим необязательным " то есть соответствует " или же "", Обратите внимание, что совпадение для "? (ноль или один ") захвачен.

Что касается возвращаемого значения string.find(), от string.find():

Если в шаблоне есть захваты, то при успешном совпадении захваченные значения также возвращаются после двух индексов.

Захват - третье возвращаемое значение, когда есть успешное совпадение.

Другие вопросы по тегам