Difference between revisions of "SubStringLastIndex"
Jump to navigation
Jump to search
Void Singer (talk | contribs) m (+recursion warning) |
(normally i disapprove of such shenanigans, but then I also disapprove of using recursion, so it's moot. This should keep the heap from ballooning as quickly (which will help in LSO but not in Mono)) |
||
Line 44: | Line 44: | ||
integer index2; | integer index2; | ||
if (index != -1) //found, look again | if (index != -1) //found, look again | ||
index2 = uSubStringLastIndex(llGetSubString(vStrSrc, index + 1, -1), vStrTst) + 1; | index2 = uSubStringLastIndex(llGetSubString(vStrSrc, index + 1, -1), (vStrSrc = vStrTst = "") + vStrTst) + 1; | ||
return index + index2; | return index + index2; | ||
} | } |
Revision as of 22:18, 23 March 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials | User-Defined Functions | Void's User Page |
User-Defined Function: integer uSubStringLastIndex( string vStrSrc, string vStrTst );
Returns a integer that is the positive index of the last vStrTst within vStrSrc
- vStrSrc: source string to check
- vStrTst: string to look for
if vStrTst is not found in vStrSrc -1 is returned.
the index of the first character is 0
Code:
- LSO: 182 bytes
- MONO: 1024 bytes
<lsl>integer uSubStringLastIndex( string vStrSrc, string vStrTst ){
integer vIdxFnd = llStringLength( vStrSrc ) - llStringLength( vStrTst ) - llStringLength( llList2String( llParseStringKeepNulls( vStrSrc, (list)vStrTst, [] ), 0xFFFFFFFF ) //-- (-1) );return (vIdxFnd
Caveats
- Performs a literal match (case sensitive).
- Wildcards and RegEx are not supported.
- Attempting to match an empty string ("") will return 0 instead of -1.
Notes
- This function is operates exactly like llSubStringIndex (including caveats), from the opposite end of the string.