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

这里的作用是什么 ??我相信它正在检查双引号,但我真的不明白"("?).

我读到string.find返回匹配模式的开始和结束索引。但是根据上面的代码行aic,正在返回 3 个值。这里返回的第三个值是什么?

4

1 回答 1

3

?匹配一个可选字符,即一个字符出现零次或一次。所以该模式"("?)匹配 a ",后跟一个可选的",即它匹配一个"or ""。请注意,"?(零或一")的匹配被捕获。

至于 的返回值string.find(),来自string.find()

如果模式有捕获,那么在成功匹配中,捕获的值也会在两个索引之后返回。

捕获是第三个返回值,当匹配成功时。

于 2014-04-06T14:42:51.083 回答