Finding a number in a string lua
Asked Answered
O

2

8

A simple question.

When a roll has been done it shows as:

"Need Roll - 150 for [SomeItem] by [SomePerson] + role bonus"

I wish for some way to isolate the number 150. However there is no such thing as a split in lua (as far as I know) so what's the best way to accomplish this?

Obala answered 27/2, 2012 at 22:49 Comment(0)
D
17

If this is for WoW, check out this strsplit function there.

Otherwise, you can do it with string.find or string.match and patterns. It could be as simple as doing a string.match for %d+ to find the first number in the string, as follows:

number = string.match(
    "Need Roll - 150 for [SomeItem] by [SomePerson] + role bonus",
    "%d+"
)
Darrel answered 27/2, 2012 at 23:1 Comment(1)
If you use string.match instead of string.find you won't need to discard the first two results. Parents around ´%d+´ are not needed in any case. You might have to call tonumber in the result: number = tonumber(string.match(theString, "%d+"))Platte
S
5

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

Shuttle answered 28/2, 2012 at 13:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.