Jei*_*man 1 regex matlab integer negative-number
MATLAB中的正则表达式是否为负整数,例如"-1".由于此错误"Index exceeds matrix dimensions.",我的代码似乎运行不正常,我知道它与我的数据文件中的负值有关.它在工作区窗口中显示负整数.
关于如何在正则表达式中允许负整数的任何想法
这是代码:
m = regexp(value, 'START=(\d+)', 'tokens');
m2 = regexp(value, 'STOP=(\d+)', 'tokens');
start = cell2mat(m{1});
stop = cell2mat(m2{1});
% Print result
fprintf(fout, 'INSERT INTO cath_domains (pdbcode, cathbegin, cathend) VALUES("%s", %s, %s)\n', domain, start, stop);
Run Code Online (Sandbox Code Playgroud)
令牌(\d+)只返回数字,而不是减号等字符.因此,如果存在减号,则没有匹配,m和/或m2为空,因此当您尝试索引到单元格数组时会出现错误.
尝试
m = regexp(value, 'START=(-?\d+)', 'tokens');
Run Code Online (Sandbox Code Playgroud)
相反,它允许一个可选的减号.