stristr

From Second Life Wiki
Jump to navigation Jump to search

Summary

Function: string Stristr( string haystack, string needle, integer after_needle );

Returns part of haystack string from the first occurrence of needle to the end of haystack.
Returns a string containing the text from haystack that comes before or after needle.

• string haystack The input string
• string needle the search within
• integer after_needle If TRUE, Stristr returns the part of the haystack after the first occurrence of the needle, otherwise before first occurrence.

Specification

//Function created by Ugleh Ulrik
string stristr(string haystack, string needle, integer after_needle){
    if(haystack)
    {//we have a haystack, it's not ""
        //Now find us a needle!
        integer pos = llSubStringIndex(haystack, needle);
        if(~pos)
        {//We have found a needle!
            if(after_needle)//return what comes after needle
                return llGetSubString(haystack, pos + llStringLength(needle), -1);
            return llDeleteSubString(haystack, pos, -1);
        }
    }
    return "";
}

Examples

This example uses its basic feature, to provide the content left, or right of the searched string.

default
{
    touch_start(integer total_number)
    {
         string source = "Hello there, Ugleh is my name!";
         string mess = stristr(source,"Ugleh",TRUE); //True means after Needle
         llOwnerSay(mess);//outputs  "  is my name!"
         
         mess = stristr(source,"Ugleh",FALSE); //False means before Needle.
         llOwnerSay(mess);//outputs "Hello there, "
    }
}

See Also

Functions

•  llSubStringIndex Find a string in another string
•  llParseString2List Split a string up into a list
•  llParseStringKeepNulls Like llParseString2List but it keeps empty strings
•  llListFindList Like llSubStringIndex but for lists