首页 > 解决方案 > 如何匹配 Lua 中的可选模式?

问题描述

我正在尝试学习如何匹配 Lua 中的可选模式。

local text = '10+'
local start_index, end_index, value = string.find(text, "%d+(%+)")
print(start_index, end_index, value)

以此为例,我希望+是可选的,并且+在该字符串中不存在时仍返回数字的索引。

我尝试了这种模式,但它会返回nil, nil, nil

local text = '10+'
local start_index, end_index, value = string.find(text, "%d+(%+)?")
print(start_index, end_index, value)

在这种情况下,我怎样才能+正确地选择可选?

标签: lua

解决方案


您需要将其移动?到捕获中!

local text = '10+'
local start_index, end_index, value = string.find(text, "%d+(%+?)")
print(start_index, end_index, value)

推荐阅读