matlab中这两个字符串查找的函数findstr(), strfind()表明上看起来用法相似,效果也相似。
一. findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。
例:
s = 'Find the starting indices of the shorter string.';
findstr(s, 'the')
ans = 6 30
findstr('the', s)
ans = 6 30
二. strfind(s1,s2)--or strfind(s1,pattern),因此其意思在s1中搜索pattern。
例:
S = 'Find the starting indices of the pattern string';
strfind(S, 'in')
ans = 2 15 19 45
strfind(S, 'In')
ans = []
注意,第一个函数findstr函数中,不能识别元胞数组,该函数只能用于字符串中。而第二个函数strfind中,S可以是元胞数组格式的字符串。
通过cell2mat()可以把cell结构转成数据,findstr(),strfind()函数只能对一维字符串数据进行操作,若是二维字符串则得使用别的函数。