在Lua中查找字符串中的数字

8

一个简单的问题。

当掷骰子后,显示为:

"需要掷骰 - 150 [SomeItem] by [SomePerson] + role bonus"

我希望能够找到随机数150的方法。 然而,在lua中并没有split函数(据我所知),那么最好的方法是什么?

2个回答

17

如果你在使用魔兽世界,可以查看这个strsplit函数。

否则,你可以使用string.findstring.match和模式(patterns)来完成。只需使用string.match查找字符串中的第一个数字,例如:%d+

number = string.match(
    "Need Roll - 150 for [SomeItem] by [SomePerson] + role bonus",
    "%d+"
)

4
如果您使用string.match而不是string.find,您将不需要丢弃前两个结果。在任何情况下都不需要Parents around ´%d+´。您可能需要调用tonumber函数将结果转换为数字格式:number = tonumber(string.match(theString, "%d+")) - kikito

5

string.match (stringvar, "%d+")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接