Проблема, кажется, здесь:
using 8KB random IOs
buffering set to use hardware disk cache (but not file cache)
После захвата размера кластера вы используете .*\n
, чтобы использовать вторую строку перед тем, как продолжить захват размера файла, но иногда есть третья строка:
using 8KB random IOs
enabling multiple I/Os per thread with 8 outstanding
buffering set to use hardware disk cache (but not file cache)
Я добавил (?:.*\n)?
в соответствующий раздел регулярного выражения, и теперь он соответствует всем 36 записям.
Я знаю, что вы хотите использовать регулярное выражение на 100%, но рассматривали ли вы возможность написания регулярного выражения в расширенном формате с комментариями (т.е. режим IgnorePatternWhitespace)? Я также рекомендовал бы использовать более регулярный текст в регулярном выражении, чтобы было легче следовать. Например,
(?<threads>\d+) threads? reading for (?<Seconds>\d+) secs.*\n
вместо
(?<threads>\d*)\s.*for\s(?<Seconds>\d+).*\n
Нечитаемый код - это не поддерживаемый код, и регулярные выражения нуждаются во всей помощи, которую они могут получить. : - /