2012-06-22 2 views
0

정규 표현식에 문제가 있습니다. mt940 은행 명세서 파일의 줄과 일치하는 작은 프로그램을 작성하고 있습니다.정규식 두 패턴 중 하나를 일치 패턴으로 인쇄하는 방법

:60F:C120613PLN245265,82 

그리고 정규 표현식 : 나는 간단한 이와 같은 문자열이

([C|D]{1})|([0-9]{6})|([A-Z]{3})|([0-9]+(\,[0-9]{2})) 

나에게

C 
120613 
PLN 
143783 
4,82 

그러나 마지막 두 행 분리를 반환하고 나는 것 다음과 같이 마지막 두 줄로 나뉘 지 않았습니다.

C 
120613 
PLN 
1437834,82 

제 생각에, 마지막 행에는 ","앞에 6 개의 숫자가 있는데, 이는 전체 패턴의 두 번째 패턴과 일치합니다.

분리되지 않은 마지막 두 단어를 되 살릴 수있는 방법은 무엇입니까?

+2

어떤 언어/정규 표현식의 다양한? –

답변

1

이 패턴은 나를 위해 작동 :

pattern "([C|D]{1})([0-9]{6})([A-Z]{3})([0-9]+,[0-9]{2})" 

내가 파이썬에서 테스트했습니다

re.findall(pattern, ":60F:C120613PLN245265,82") // [('C', '120613', 'PLN', '245265,82')] 
+0

불행히도 작동하지 않습니다 ... – ElProgramadorOrganista

+0

@ user1474175 : 내 코드가 수정되었습니다. 그것을 검토하십시오. – user278064

+0

빠른 답변 주셔서 감사합니다. 파이썬에서 "|"없이 작동합니다. 너 괜찮아. 그러나 C#에서는 문제입니다. 다른 방법으로 문제를 해결했습니다. "RightToLeft"옵션을 사용했으며 현재 작동 중입니다. – ElProgramadorOrganista