如何将字符串拆分为子字符串列表,其中要拆分的分隔符是MATLAB对象类型?
例如:
>> splitByType('a1b2c3',type=integer)
['a','b','c']
或:
>> splitByType('a1b2c3',type=character)
['1','2','3']
答案 0 :(得分:6)
我不确定MATLAB对象类型的含义。对于整数,您可以使用:
a='a1b2c'
regexp(a,'[0-9]+','split')
输出:
ans =
'a' 'b' 'c'
另一种选择是:
regexp(a,'\d+','split')
答案 1 :(得分:2)
您通过传递类型的相应正则表达式来查找regexp()
:
regexp('a1b2c','\d+','split') % or use '[0-9]+'
regexp('a1b2c','[a-z]+','split')
答案 2 :(得分:1)
如果您对正则表达式感到满意,我会使用regexp
答案,但您也可以将strsplit
与包含可能分隔符的字符串数组一起使用:
strsplit(a,cellstr(num2str((0:9)'))') % digits
strsplit(a,cellstr(char([65:90 97:122])')') % word characters
另外,strsplit
有一个正则表达式模式(奇怪!你为什么要在regexp
上使用它?):
strsplit(a,'\d+','delim','reg') % one or more digits
strsplit(a,'\w+','delim','reg') % one or more word characters
相当于regexp(a,'\d+','split')
和regexp(a,'\w+','split')
。