2012-01-04 59 views
1

MATLAB中的正則表達式是否使用負整數,例如「-1」。我的代碼似乎沒有運行良好,因爲這個錯誤"Index exceeds matrix dimensions.",我知道它與我的數據文件中的負值有關。它在工作區窗口中顯示負整數。允許MATLAB中的正則表達式使用負整數

任何想法,我可以怎樣讓我的正則表達式

這裏負整數的代碼:

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

回答

5

令牌(\d+)只會返回數字,像減號不是字符。因此,如果存在負號,則不匹配,m和/或m2爲空,因此當您嘗試索引單元格數組時,會出現錯誤。

嘗試

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

相反,它允許一個可選的減號。

+0

我完全忘了回合'?'您可以在其中放置任何符號以被接受。謝謝你的提醒。 – Jeiman 2012-01-04 14:33:23