在Lua中使用"(?)",并显示它在string.find函数中的返回值。

这里的 ? 起到了什么作用?我认为它是在查找双引号,但确切的 "("?) 的用法我真的不明白。

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

点赞
用户1009479
用户1009479

? 匹配一个可选字符,即字符出现零次或一次。因此,模式 "("?) 匹配一个 ",后跟一个可选的 ",即它匹配 """。注意,零次或一次 " 的匹配被捕获。

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

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

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

2014-04-06 14:42:51