Соответствие шаблону perl Количество загрузок: 1 файлов, 8.7K за 0 с (16.9 МБ / с) - PullRequest
0 голосов
/ 12 июля 2010

У меня есть следующая строка «Скачано: 1 файл, 8,7 КБ в 0 с (16,9 МБ / с)», которую я получил от wget и хочу сопоставить ее с шаблоном, создав регулярное выражение.Я пробовал с:

/^Downloaded: ([0-9]*) files, ([0-9GK]*) in ([0-9.]*)s ([0-9.]) [KM]B\/s/ 

Но это не работает.Буду признателен за любую помощь.Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

"Загружено: 1 файл, 8,7 КБ в 0 с (16,9 МБ / с)"

не соответствует /^Downloaded: ([0-9]) files, ([0-9GK]) in ([0-9.]*)s ([0-9.]) [KM]B\/s/ из-за десятичной точки в "8,7 КБ" и круглых скобок вокруг скорости загрузки. Измените это на:

/^Downloaded: (\d+) files, ([0-9.]+[GMK]) in ([0-9.]+)s \(([0-9.]+) [KM]B\/s\)/

Я также сделал так, чтобы некоторые из этих значений могли иметь более одной цифры, и вы можете иметь файлы в диапазоне мегабайт, а также килобайт и гигабайт.

1 голос
/ 12 июля 2010

Класс символов, такой как [0-9], соответствует только одному символу. Если вы хотите один или несколько, вы должны указать [0-9]+. Кроме того, вы забыли точку в классе символов для размера.

Также вы можете использовать \d+ вместо [0-9]+.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...