2014-08-27 39 views
0

使用正則表達式需要排除從字符串的數字從字符串位數,並返回MATLAB細胞字符串數組排除在MATLAB

e.g str = 'abc76.5_pol0.00_Ev0.3' 

output {'abc','pol','Ev'} 

字符串不是具體到「ABC」等,也可能是長期

的字符
+0

在字符串中是否也有符號,例如 - ''abc $$ 76.5_pol0.00_Ev0.3''也許? – Divakar 2014-08-27 07:55:58

+0

字母和數字之間沒有符號 – IntelK 2014-08-27 07:58:15

+0

好的,數字之間可能或只是在字符串中的任何地方? – Divakar 2014-08-27 07:58:53

回答

4

使用正則表達式。

str = 'abc76.5_pol0.00_Ev0.3'; 
C = regexp(str, '[a-zA-Z]*', 'match'); 
+0

解決方案工作正常 – IntelK 2014-08-27 09:07:54

2

這是我發現

output = regexp(str, '[^a-zA-Z]', 'split'); 
output(cellfun(@isempty,output)) = []; 
+0

解決方案工作正常 – IntelK 2014-08-28 04:13:35

1

您還可以使用strsplitRegularExpression選項的解決方案。

C = strsplit(str, '[^a-zA-Z]', 'DelimiterType', 'RegularExpression') 
+0

我相信strsplit是在最近版本的MATLAB中添加的一個函數,我使用R2010b並且該函數不可用 – IntelK 2014-08-27 07:56:14

+0

您的解決方案與我的非常相似,但我不明白爲什麼'C'結尾處有一個空單元格。 – Jommy 2014-08-27 07:59:25