function [ranum,rachar]=__getrange(r) % find the separator middle = strfind (r,':'); s='"'; % fuck this shit %% just support single charakter. e.g. from A:C or D:X. AA:DZ is not supported yet!!! until someone build regexp for it! eval (sprintf ("rachar = [%s%s%s:%s%s%s];", s, r(1), s, s, r(middle+1), s)); _min.raw=r(2:middle-1); _min.len=length(_min.raw); _max.raw=r(middle+2:end); _max.len=length(_max.raw); if _max.len>_min.len elseif _max.len==_min.len for i=1:_max.len if (str2double(_max.raw(i)) == str2double(_min.raw(i))) eval (sprintf ("regexpart{%d} = '%s';",i,_min.raw(i))); elseif (str2double(_max.raw(i)) - str2double(_min.raw(i)))> 1 eval (sprintf ("regexpart{%d} = '[%s-%d]';",i,_min.raw(i),str2double(_max.raw(i))-1)); else % max - min = 1 eval (sprintf ("regexpart{%d} = '[%s-%s]';",i,_min.raw(i),_max.raw(i))); endif endfor endif if _max.num-_min.num <= 9 if length eval (sprintf ("rachar = [%s%s%s:%s%s%s];", s, r(1), s, s, r(middle+1), s)); eval (sprintf ("ranum = [%s%s%s:%s%s%s];", s, r(2:middle-1), s, s, r(middle+2:end), s)); else endif endif endfunction