2017-09-18 1 views
0

ExamDiff를 사용하여 쉼표 뒤에 공백이없는 두 개의 * .csv 파일을 비교합니다. 파일에있는 숫자는 소수점 2 ~ 8 자리를 포함하지만 십진법 뒤의 처음 3 자리 만 평가하려고합니다. 천분의 일 이상이면 아무것도 중요하지 않습니다.
ExamDiff를 사용하면 행의 특정 부분을 무시하므로 숫자 문자열을 식별하기 위해 (\d{1,4}\.)을 사용할 수 있습니다 (이 경우에는 무시 됨). , 12.0000,0.23,1.0000,1.0000000000,1357.421숫자에서 십진수 뒤의 숫자 만 어떻게 평가합니까?

VQ000009, B2, B3, VV 그리고 여기에 새로운 CSV의 비교 라인이다 :
다음은 CSV의 샘플 라인의

이 엑사에서

VQ000009, B2, B3, VV, 그래서 12.0000,0.27,1.0009,1.0000000000,1357.431

, mple 0.23 및 0.27 것 플래그 1.0000과 1.0009 것 하지 플래그 및 1357.421 및 1357.431 것 플래그 방법 부스트 라이브러리의 많은 지원에 관한 웹 사이트가 명확하지 않다

+0

사례를 더 많이 인용 할 수 있습니까? 네가 성취하고자하는 것을 분명히 알지 못한다. 무시할 2-3 자릿수는 무엇입니까? –

+0

@RajeevRanjan이 (가) 다른 예를 사용하여 편집했습니다. – Sam

+0

'\ d {1,4} \. \ d {3}'-이 패턴이 도움이됩니다. 그것은 불일치가 허용되지 않는 십진법 후에 단지 3 개의 장소를 붙잡을 것입니다. –

답변

1

하지만 경우 전체 PCRE 지원됩니다, 당신은 무시하고이를 사용할 수 있습니다

(?<=\.\d{3})\d+ 

이것은 . 3 자리 숫자로 시작되는 모든 숫자와 일치했다. VQ.123456과 같은 문자가있는 경우 456은 일치하고 무시됩니다. 길잃은 .는 문제를 일으킬 것입니다.

+0

고맙습니다. 완벽하게 작동했습니다. – Sam

관련 문제