Как мне оценить только цифры после десятичной точки в числе?
Я использую ExamDiff для сравнения двух *.csv файлов, которые не имеют пробелов после запятых. Числа в файлах содержат от 2 до 8 знаков после запятой, но я хочу оценить только первые 3 цифры после запятой - все, что находится за тысячным знаком, незначительно.
ExamDiff позволяет использовать Regex, чтобы игнорировать определенные части строк, поэтому я использую: (\d{1,4}\.)
идентифицировать числовую строку (но также игнорировать ее, что в этих случаях нормально).
Вот пример строки из CSV:
VQ000009, В2, В3, В.В., 12.0000,0.23,1.0000,1.0000000000,1357.421
И вот сопоставимая строка в новом CSV:
VQ000009, В2, В3, В.В., 12.0000,0.27,1.0009,1.0000000000,1357.431
Таким образом, в этом примере 0.23 и 0.27 отметят 1,0000, а отметка 1.0009 не помечает, а 1357.421 и 1357.431 отметит
1 ответ
На веб-сайте неясно, какая часть библиотеки Boost поддерживается, но если поддерживается полный PCRE, вы можете использовать это, чтобы игнорировать:
(?<=\.\d{3})\d+
Это говорит о совпадении любых цифр, которым предшествует .
и 3 цифры. Note that if you have something like VQ.123456
456
will match and be ignored. бездомный .
will cause issues.