在MATLAB中允许正则表达式的负整数

时间:2012-01-04 01:39:21

标签: 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);

1 个答案:

答案 0 :(得分:5)

令牌(\d+)只返回数字,而不是减号等字符。因此,如果存在减号,则没有匹配项,m和/或m2为空,因此当您尝试索引到单元格数组时会出现错误。

尝试

m = regexp(value, 'START=(-?\d+)', 'tokens');

相反,它允许可选的减号。