我有一个字符串
string = 'one Two9three four_Five 67SixSevenEightNine';
我需要把它分成几个字:
'one' 'two' 'three' 'four' 'five' 'six' 'seven' 'eight' 'nine'
我设法将除CamelCase之外的所有内容分开,当小写字母后跟大写字母时:
while ~isempty(string)
[str,string] = ...
strtok(string, ...
[' ~@$/#.-:&*+=[]?!(){},''">_<;%' char(9) char(10) char(13) '0-9']);
str = regexprep(str, '[0-9]','');
end
我也可以获取模式的索引,但只有当我知道如何插入空格或某些字符之间时,我才能再次使用上面的代码分成单词:
pattern = '[a-z][A-Z]+';
[pat,idx]=regexp(str, pattern,'match');
任何想法? 谢谢!
答案 0 :(得分:2)
为什么不在进行其他处理之前更换camelCase?
newstring = regexprep(string, '([a-z])([A-Z])', '$1 $2');
while ~isempty(newstring)
...