【问题标题】:Allow negative integers for Regular Expressions in MATLAB在 MATLAB 中允许正则表达式使用负整数
【发布时间】:2012-01-04 01:39:21
【问题描述】:

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);

【问题讨论】:

    标签: regex matlab integer negative-number


    【解决方案1】:

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

    试试

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

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

    【讨论】:

    • 我完全忘记了“?”参数,您可以将任何符号放在它前面以被接受。感谢您的提醒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多