2012-10-19 6 views
3

문자열 앞에 물음표가없는 한 특정 구분 기호로 문자열을 분할하는 정규식 패턴을 작성하려면 어떻게해야합니까?특정 문자 (?)를 따르지 않을 때 정규 표현식을 사용하여 문자 (')를 일치시킬 수 있습니까?

EDIFACT 메시지를 세그먼트, 합성물 및 요소로 분리하는 파서를 작성했습니다. 그러나 EDI 표준에서 물음표는 이스케이프 문자입니다.

'PRI+2.005:1+9022.5'RAD+RRHANB97+120814' 

나는 사항 String.split를 사용할 수 있습니다 ('\' '), 다음 사항 String.split는 ('+ ') 다음 사항 String.split는 (': ') 얻을 PRI 그래서이 문자열을 분할 , 2.005, 1, 9022.5 등 에 그러나, 이러한 문자는 물음표로 이스케이프 할 수있다 : 지금 PRI해야

'PRI+2.005?+3.2:1+9022.5'RAD?'R+RRHANB97+120814' 

, + 3.2 2.005, 1, 9022.5, RAD'R, RRHANB97을.

누군가가 'and not the?'와 일치하는 정규 표현식을 사용할 수 있습니까?

감사 negative lookbehind

+0

당신을 부정적인 lookbehind를 사용할 수 있습니다 :'(?

답변

4

:

(?<!\?)' 
+0

고마워! 나는 계속 사용했다 (? =! \?) '긍정적 인 앞을 내다 본다. – reckface

0

그냥 \ '를 사용하는 대신 regex.Matches을하려고으로하는 regex.Split 대신