2012-01-04 2 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

관련 문제