如何在Matlab中编辑一个字符串,使其只包含字母A-Z

时间:2016-02-08 15:47:27

标签: regex matlab unique edit

我需要能够在Matlab中编辑一个字符串,以便它只包含字母a-z。

示例:

如果我有话

dog 
cat
fish
°·°·°·
∞°¥È
¥©±∏≥™
¥Î„‚Ω‚‡Ó

我希望能够编辑此列表,以便我得到的唯一单词是

dog
cat
fish

目前,我编辑单词的方式是使用regexp(),如下所示。

pat = '[\s\.\]\[\&\%\#\*\,\$\_\ ,;:-''"?!/()@=><]+'; 
words = regexp(st,pat,'split');
words = lower(words);

这种方法可以很好地删除我不想要的符号,但是有一些例外,包括我上面列出的那些我要删除的符号。

1 个答案:

答案 0 :(得分:4)

您可以尝试:

where

不是世界上最有效或最优雅的东西,但可能会奏效。

此外,如果您不想使用循环,您可以执行以下操作:

for i=length(string):-1:1
    if string[i]<int8('a') || (string[i]>int8('z') && string[i]<int8('A')) || string[i]>int8('Z')
        string=[string(1:i-1) string(i+1:end);
    end
end