Использование "("?) В Lua с string.find и значением, которое он возвращает
a, i, c = string.find(s, '"("?)', i + 1)
Какова роль ?
Вот? Я считаю, что это проверялось на двойные кавычки, но я действительно не понимаю, как именно "("?)
,
Я прочитал это string.find
возвращает начальный и конечный индексы сопоставленного шаблона. Но согласно приведенной выше строке кода, a
, i
а также c
3 значения возвращаются. Какое третье значение возвращается здесь?
1 ответ
?
соответствует необязательному символу, т. е. нулю или одному вхождению символа. Итак, шаблон "("?)
соответствует "
с последующим необязательным "
то есть соответствует "
или же ""
, Обратите внимание, что совпадение для "?
(ноль или один "
) захвачен.
Что касается возвращаемого значения string.find()
, от string.find()
:
Если в шаблоне есть захваты, то при успешном совпадении захваченные значения также возвращаются после двух индексов.
Захват - третье возвращаемое значение, когда есть успешное совпадение.