所以我的代码是:
my5Sentences={'Windows machines are better than Macs.','The Intel core i7 4770k is a great processor.','My email is rjoshi8@drexel.edu','I go to Drexel','I am writing this in MATLAB & and I am writing this code for Engr-180'};
for i=1:length(my5Sentences)
fprintf('The total number of characters in this sentence is %i\n',length(my5Sentences{i}))
end
这部分代码显示每个句子中有多少个字符,但现在我需要找出每个句子中有多少个特殊字符。我不确定这个代码会是什么样子。顺便说一句,感谢PearsonArtPhoto帮助我解决原始问题。
答案 0 :(得分:1)
尝试正则表达式:
[f]=regexp(my5Sentences{i},'([^a-zA-Z_0-9\s])','tokens')
如果需要索引,请检查f的其他输出;如果某些caracters被视为错误,请检查regexp的文档。
答案 1 :(得分:1)
您可以使用regexp
轻松完成此操作:
>> cellfun(@(str) numel(regexp(str, '\W')), my5Sentences)
ans =
6 9 5 3 16
我假设“特殊字符”表示除字母或数字之外的任何内容。否则,将'\W'
更改为您需要的任何内容。例如,如果空格和句点不计为特殊字符,请使用
cellfun(@(str) numel(regexp(str, '[^a-z_A-Z0-9\s.]')), my5Sentences)