strindex
search position of a character string in another string
Syntax
[ind, which] = strindex(haystack, needle) [ind, which] = strindex(haystack, needle, "regexp")
Arguments
- haystack
a character string. The string where to search occurrences of
needle
.- needle
a character string or character string vector. The string(s) to search in
haystack
.- ind
a vector of indexes.
- which
a vector of indexes.
- "regexp" | "r" flag
Then
needle
elements are used as regular expressions.
Description
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
Examples
k=strindex('SCI/demos/scicos','/') k=strindex('SCI/demos/scicos','SCI/') k=strindex('SCI/demos/scicos','!') k=strindex('aaaaa','aa') k=strindex('SCI/demos/scicos',['SCI','sci']) [k,w]=strindex('1+3*abc/2.33',['+','-','*','/']) k=strindex('2' ,'/2(]*)?$\1/' ,'r')
See also
Report an issue | ||
<< strcspn | Strings | string >> |