Stristr: Difference between revisions
Jump to navigation
Jump to search
Ugleh Ulrik (talk | contribs) Created page with '{{LSL_Function |func=Stristr |mode=user |p1_type=string|p1_name=haystack|p1_desc=The input string |p2_type=string|p2_name=needle|p2_desc=the search within |p3_type=integer|p3_nam...' |
Streamlining, we test haystack so we can use negative indexes; the before_needle syntax seemed backwards: false is less than true, so false should describe what comes earlier in the string. |
||
| Line 4: | Line 4: | ||
|p1_type=string|p1_name=haystack|p1_desc=The input string | |p1_type=string|p1_name=haystack|p1_desc=The input string | ||
|p2_type=string|p2_name=needle|p2_desc=the search within | |p2_type=string|p2_name=needle|p2_desc=the search within | ||
|p3_type=integer|p3_name= | |p3_type=integer|p3_name=after_needle|p3_desc=If TRUE, '''Stristr''' returns the part of the '''haystack''' after the first occurrence of the '''needle''', otherwise before first occurrence. | ||
|return_type=string | |return_type=string | ||
|return_text=from | |return_text=containing the text from '''haystack''' that comes before or after '''needle'''. | ||
|func_desc=Returns part of '''haystack''' string from the first occurrence of '''needle''' to the end of '''haystack'''. | |func_desc=Returns part of '''haystack''' string from the first occurrence of '''needle''' to the end of '''haystack'''. | ||
|func_footnote | |func_footnote | ||
|spec=<lsl> | |spec=<lsl>//Function created by Ugleh Ulrik | ||
//Function created by Ugleh Ulrik | string stristr(string haystack, string needle, integer after_needle){ | ||
string stristr(string haystack, string needle, integer | 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 | |||
integer | return llGetSubString(haystack, pos + llStringLength(needle), -1); | ||
return llDeleteSubString(haystack, pos, -1); | |||
} | |||
} | |||
return ""; | |||
} | } | ||
</lsl> | </lsl> | ||
|examples= | |examples= | ||
This example uses its basic feature, to provide the content left, or right of the searched string. | This example uses its basic feature, to provide the content left, or right of the searched string. | ||
<lsl> | <lsl>default | ||
default | |||
{ | { | ||
touch_start(integer total_number) | touch_start(integer total_number) | ||
{ | { | ||
string source = "Hello there, Ugleh is my name!"; | |||
string mess = stristr(source,"Ugleh", | string mess = stristr(source,"Ugleh",TRUE); //True means after Needle | ||
llOwnerSay(mess);//outputs " is my name!" | llOwnerSay(mess);//outputs " is my name!" | ||
mess = stristr(source,"Ugleh", | mess = stristr(source,"Ugleh",FALSE); //False means before Needle. | ||
llOwnerSay(mess);//outputs "Hello there, " | llOwnerSay(mess);//outputs "Hello there, " | ||
} | } | ||
} | }</lsl> | ||
</lsl> | |||
|helpers | |helpers | ||
|notes | |notes | ||
|also | |also | ||
|also_functions | |also_functions= | ||
{{LSL DefineRow||[[llSubStringIndex]]|Find a string in another string}} | |||
{{LSL DefineRow||[[llParseString2List]]|Split a string up into a list}} | |||
{{LSL DefineRow||[[llParseStringKeepNulls]]|Like llParseString2List but it keeps empty strings}} | |||
{{LSL DefineRow||[[llListFindList]]|Like [[llSubStringIndex]] but for lists}} | |||
|also_articles | |also_articles | ||
|cat1=Examples | |cat1=Examples | ||
Revision as of 22:59, 30 May 2010
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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
<lsl>//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 "";
} </lsl>
Examples
This example uses its basic feature, to provide the content left, or right of the searched string. <lsl>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, "
}
}</lsl>
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 |