我正在尝试匹配两种类型的字符串。我希望捕获它们,但到目前为止我只能捕获一个。
function roll(input)
min, high = string.match(input, '(%d+)-(%d+)');
return min, high;
end
输入字符串为:10-100
和10
我的第一个字符串按预期返回,但我的第二个字符串(单个数字)返回nil
/匹配未找到。
我希望检查是否包含模式的第二部分,因为它应该始终打印出我的min
变量。
答案 0 :(得分:2)
最简单的方法是单独进行:
function roll(input)
local min,high = string.match(input, '(%d+)-(%d+)')
if min == nil then
min = string.match(input, '(%d+)')
end
return min, high
end
print(roll '10')
print(roll '10-100')