给定一个字符串'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'
答案 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
请注意,第一部分将被解析并作为数字返回。