是否有(默认)的Matlab函数与java方法split(delimiter)类似,可以根据任意分隔符对字符串进行标记化?
有一个内置函数叫做textscan
,可以实现这个功能:
>> C = textscan('I like stack overflow', '%s', 'delimiter', 'o');
>> C = C{1}
C =
'I like stack '
'verfl'
'w'
strtok{}
看起来更好。 - AruniRCstr = 'myfile.txt'
,我们想要在 .
分隔符上将其分开。因此,(str0,str1) = strtok(str,'.')
将会在第二个参数指定的分隔符上拆分字符串。先前评论中的花括号是一个打字错误,抱歉。 - AruniRCstrtok
,而textscan
解决方案是一行代码(好吧,两行,但无妨 :) - Rody Oldenhuisstrtok
可以用于多个分隔符。那么,有没有什么好的解决方案呢? :) - AruniRC有多种方法可以分割字符串。像Rody Oldenhuis刚才提到的那样,这里还有其他几种方法:
1> 使用函数regexp
:
>> str = 'Good good study Day day up';
>> regexp(str,'\s','split')
ans =
'Good' 'good' 'study' 'Day' 'day' 'up'
>>
2> 使用函数 strread
:
>> str = 'Section 4, Page 7, Line 26';
>> strread(str, '%s', 'delimiter', ',')
ans =
'Section 4'
'Page 7'
'Line 26'
>>
xml_toolbox
的软件包,其中有一个类似于您所提到的函数。
它被称为strsplit
。
strsplit('I like stack overflow','o')
答案是:
'I like stack' 'verfl' 'w'
strsplit
的函数可以实现这个功能。 - Dan