对于matlab,我有一个包含5个句子的数组,我需要找到每个句子中特殊字符的数量

时间:2013-11-09 13:00:23

标签: arrays string matlab character conditional

所以我的代码是:

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帮助我解决原始问题。

2 个答案:

答案 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)