search position of a character string in an other string.
ind=strindex(haystack,needle,[flag])
[ind,which]=strindex(haystack,needle,[flag])
: :ind vector of indexes : :which vector of indexes : :flag string(“r” for regular expression) :
strindex searches indexes where needle (i) is found in haystack
for each k it exist a i shuch 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 parameters “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 algoritm.
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
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')