【问题标题】:How to match for optional pattern in Lua?如何匹配 Lua 中的可选模式?
【发布时间】:2021-05-17 07:56:55
【问题描述】:

我正在尝试学习如何匹配 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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 2014-11-20
      • 1970-01-01
      • 2013-01-19
      • 2011-02-03
      • 2015-07-19
      • 1970-01-01
      • 2019-03-29
      • 2012-11-17
      相关资源
      最近更新 更多