Issue with string.find in Mudlet
I'm writing a simple script to track changes in my experience using gmcp.Char.Status.level, but running into an issue with the string.find() function.
The output for gmcp.Char.Status.level for me at the moment is '90 (0.31%)', and since I'm only interested in the part between the '(' and '%' characters, I thought to use string.sub() to isolate it. The problematic bit of code in question is:
string.sub(gmcp.Char.Status.level, string.find(gmcp.Char.Status.level, "(") + 1, string.find(gmcp.Char.Status.level, "%"))
This fails, with the error 'unfinished capture'. If I run the code:
string.sub(gmcp.Char.Status.level, 6, 9)
It returns '0.31', as intended.
Running:
string.find(gmcp.Char.Status.level, "(")
by itself results in the same 'unfinished capture' error, while running:
string.find(gmcp.Char.Status.level, "%")
results in a new error that says 'malformed pattern (ends with '%'). I am unsure why this is happening, as running the exact same string.find() function for any other character in the string returns its position, including running it with ")".
If anyone could explain this to me, I would be most grateful.
The output for gmcp.Char.Status.level for me at the moment is '90 (0.31%)', and since I'm only interested in the part between the '(' and '%' characters, I thought to use string.sub() to isolate it. The problematic bit of code in question is:
string.sub(gmcp.Char.Status.level, string.find(gmcp.Char.Status.level, "(") + 1, string.find(gmcp.Char.Status.level, "%"))
This fails, with the error 'unfinished capture'. If I run the code:
string.sub(gmcp.Char.Status.level, 6, 9)
It returns '0.31', as intended.
Running:
string.find(gmcp.Char.Status.level, "(")
by itself results in the same 'unfinished capture' error, while running:
string.find(gmcp.Char.Status.level, "%")
results in a new error that says 'malformed pattern (ends with '%'). I am unsure why this is happening, as running the exact same string.find() function for any other character in the string returns its position, including running it with ")".
If anyone could explain this to me, I would be most grateful.
0
Comments
Escaping those characters should work.
EDIT: For more on patterns and captures, take a look at the patterns tutorial on the lua users wiki.
the claims are stated - it's the world I've created