拆分数字和字符串matlab

时间:2014-07-11 14:46:32

标签: regex string matlab string-split

给定一个字符串'12.39 ert_23::ex::status = 12'。格式始终是时间后跟一个字符串。我想把时间分开,即12.39和剩下的字符串。我使用过regexp但无法实现我的需求。

str_in = '12.39 ert_23::ex::status = 12';
str_out =  regexp(str_in,'\d+(\.\d+)? \w*','split');

预期的出局是

str_out = '12.39'  ' ert_23::ex::status = 12'

3 个答案:

答案 0 :(得分:2)

这个怎么样?

ind = regexp(str_in,'\d+(\.\d+)','end');
str_out = {str_in(1:ind), str_in(ind+1:end)};

答案 1 :(得分:2)

这个怎么样:

>> regexp(str_in,'(\d+(?:\.\d+)?) (.*)','tokens', 'once')

ans = 

    '12.39'    'ert_23::ex::status = 12'

>> 

答案 2 :(得分:2)

另一种方法:

>> C = textscan(str_in, '%f %s', 'Delimiter','')
C = 
    [12.3900]    {1x1 cell}

>> celldisp(C)
C{1} =
   12.3900
C{2}{1} =
ert_23::ex::status = 12

请注意,第一部分将被解析并作为数字返回。