如何使用 string.match 匹配单个数字和由连字符隔开的数字?

我正在尝试匹配两种类型的字符串。我希望能够捕获它们两个,但目前我只能捕获其中一个。

function roll(input)
  min, high = string.match(input, '(%d+)-(%d+)');

  return min, high;
end

输入的字符串是:10-10010

我的第一个字符串返回了预期的结果,但第二个(单个数字)返回了nil/没有找到匹配项。

我希望检查模式的第二部分是否包含在内,因为它应该总是打印出我的min变量。

点赞
用户869951
用户869951
# 函数:roll(input)

该函数的作用是从输入字符串中提取出最小值和最大值,并以返回值的形式返回它们。

## 参数:
* input:需要提取的字符串。

## 返回值:
* min:字符串中提取出的最小值。
* high:字符串中提取出的最大值。

## 示例:
```lua
print(roll '10')  -- 输出: 10    nil
print(roll '10-100')  -- 输出: 10    100
2014-04-17 04:04:39