search position of a character string in another string
ind = strindex(haystack, needle, [flag]) [ind, which] = strindex(haystack, needle, [flag])
a character string. The string where to search
occurrences of needle
.
a character string or character string vector. The
string(s) to search in haystack
.
a vector of indexes.
a vector of indexes.
a string ("r"
for regular expression).
strindex
searches indexes where
needle(i)
is found in haystack
.
For each k
it exist an i
such
that part(haystack,ind(k)+(0:length(needle(i))-1))
is
the same string than needle(i)
. If
which
argument is required it contains these
i
. When using the third parameter "r"
, the needle
should be a string of regular expression. And then strindex
is going to
match it with haystack
according to the regular express rules.
strindex
without regular expression argument is
based on Knuth-Morris-Pratt algorithm.
This algorithm is more powerful than that used in Scilab 4.x. In some special case, result can be different.
Example:
// Scilab 5.x
-->[k,w]=strindex('aab',['a','ab'])
w = 1. 1. 2. k = 1. 2. 2.
// Scilab 4.x
-->[k,w]=strindex('aab',['a','ab'])
w = 1. 1. k = 1. 2.
The rules of regular expression are similar to Perl language. For a quick start, see http://perldoc.perl.org/perlrequick.html. For a more in-depth tutorial on, see http://perldoc.perl.org/perlretut.html and for the reference page, see http://perldoc.perl.org/perlre.html