MATLAB正则表达式的结果不一致

时间:2015-04-13 07:49:01

标签: regex matlab

我有一些字符串由管道(和句点)分隔,我尝试使用MATLAB正则表达式进行拆分:

m = 'mari|bersenang|senang.jpg'; 

在第一步中,我通过管道分割该字符串,所以最后有一个字符串senang.jpg。在第二步中,我按周期分割这个字符串。但结果与我在第一步中得到的结果不同。在第一步中,输出只是一个包含字符串的单元格。但是在第二步中,单元格内部的单元格用于从正则表达式函数中包装出口。我不明白这是怎么发生的?因为如果我直接分割字符串senang.jpg(而不是在第一步中从正则表达式函数的输出中分割),则输出看起来很正常。

这是我的完整脚本:

clear all ;
clc;

m = 'mari|bersenang|senang.jpg'; 
hasil = regexp(m, '\|', 'split');
hasil %  result a cell 

test = hasil(end)
hasil = regexp(test, '\.', 'split'); 
hasil  % result a cell inside a cell 
hasil{1} % result a cell
hasil{1}{2} % get content of a cell 

test = 'senang.JPG'; 
hasil = regexp(test, '\.', 'split'); 
hasil % output just a cell

注意:我使用MATLAB 2009a

1 个答案:

答案 0 :(得分:3)

替换

  

test = hasil(end)

通过

test = hasil{end}; %// note curly braces

那样test是一个字符串,而不是包含字符串的单元格。