-1

所以我的代码是:

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 帮助我解决了最初的问题。

4

2 回答 2

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)
于 2013-11-09T13:23:56.253 回答
1

尝试正则表达式:

[f]=regexp(my5Sentences{i},'([^a-zA-Z_0-9\s])','tokens')

如果您需要索引,请检查 f 的其他输出,如果某些字符被错误地处理,请检查正则表达式的文档。

于 2013-11-09T13:21:57.287 回答