|
|
Line 1: |
Line 1: |
− | The string API is a default Lua 5.1 API as defined [http://www.lua.org/manual/5.1/manual.html#5.4 here]. Please list any non-working functions below.
| + | Yours is a clever way of tihinkng about it. |
− | | + | |
− | ==Non-Working Functions==
| + | |
− | | + | |
− | ===string.gmatch(string, pattern)===
| + | |
− | | + | |
− | Using any quantifier other than + will cause it to hang if that quantifier applies to the whole pattern and that pattern does not match the whole string.
| + | |
− | | + | |
− | Examples:
| + | |
− | <pre>
| + | |
− | "abcdef":gmatch("%a*") -- Works
| + | |
− | "abc=def":gmatch("%a*") -- Hang
| + | |
− | "abc=def":gmatch("%a.*") -- Works
| + | |
− | "abc=def":gmatch("[%a.]*") -- Hang
| + | |
− | "abc=def":gmatch("[^=]*") -- Hang
| + | |
− | "abc=def":gmatch("([^=]*)=?") -- Works (Note: This produces the same result as the above pattern should)
| + | |
− | "abcdef":gmatch("[^=]*") -- Works
| + | |
− | "abc=def":gmatch("[^=]*=") -- Works
| + | |
− | </pre>
| + | |
− | | + | |
− | ===string.sub / string.find ===
| + | |
− | | + | |
− | Both string.sub and string.find work on their own, but calling string.find on a string returned by string.sub will return the index of the character in the original string, not the sub string you are referencing.
| + | |
− | | + | |
− | Example:
| + | |
− | <pre>
| + | |
− | local testString = "This is a sample string";
| + | |
− | local testSubString = string.sub(testString,5);
| + | |
− | | + | |
− | local indexOfSample = string.find(testSubString,"sample");
| + | |
− | </pre>
| + | |
− | | + | |
− | indexOfSample is returned 11 instead of the expected 7
| + | |
− | | + | |
− | Concatenating a blank string onto the end of the string causes new memory to be allocated and works properly again
| + | |
− | | + | |
− | <pre>
| + | |
− | local testString = "This is a sample string";
| + | |
− | local testSubString = string.sub(testString,5);
| + | |
− | | + | |
− | local indexOfSample = string.find(testSubString.."","sample");
| + | |
− | </pre>
| + | |
− | | + | |
− | This is also a problem with using string.find on command line arguments, as this returns the index in the full command path instead of the specific argument.
| + | |
− | | + | |
− | | + | |
− | [[Category:APIs]]
| + | |
Yours is a clever way of tihinkng about it.