===== Instrx (Function) =====
==== Format ====
**instrx** ( [[stringexpressions|haystack_string_expression]] , [[regularexpressions|regular_expression]] )\\
**instrx** ( [[stringexpressions|haystack_string_expression]] , [[regularexpressions|regular_expression]] , [[integerexpressions|start_expression]] )
returns [[integerexpressions|integer_expression]]
==== Description ====
Check to see if the text represented by the regular expression [[regularexpressions|regular_expression]] is contained in the string [[stringexpressions|haystack_string_expression]]. If it is, then this function will return the index of starting character of the first place where [[stringexpressions|needle_string_expression]] occurs. Otherwise, this function will return 0.
You may optionally specify a starting location for the search to begin [[integerexpressions|start_expression]]. If the start is 1 or greater the search will begin from the specified character from the start. If the start is < 0 then the search will begin from the nth character from the end. The search will ALWAYS look forward.
==== Note ====
String indices begin at 1.
==== Example ====
print instrx("HeLLo", "[Ll]o")
print instrx("Hello, Kitti","[Ii]",10)
will display
4
12
==== Notes ====
**instrx** can be used to test if a string matches a regular expression. In for following example the function isnumber returns true if the string passed is in for format of a floating point number and false if not.
function isnumber(s$)
# return true if a number - false of not
return instrx(s$,"^-?\d+\.?\d*$") <> 0
end function
By default the nature of regular expressions is "greedy". This behaviour can be changed using the [[regexminimal|RegexMinimal]] statement.
==== See Also ====
{{page>en:start#String Handling&noheader}}
==== History ====
|0.9.6.56|New To Version|
|1.99.99.53|Added start position < 0|