Итак, ребята, у меня есть этот самодельный шаблон, который работает. Через несколько часов (я не гуру регулярных выражений) этот щенок эволюционировал, чтобы разобрать вывод curl PUT для меня:
^\s*([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)
\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)
(CR в тексте только для форматирования)
Это дает мне «группы», к которым я обращаюсь - это работает! Тем не менее, кодер во мне видит повторение паттерна, и это выводит меня из строя. За прошедшие годы я видел perl how-small-is-your-pattern конкурсы, которые заставляют меня думать, что это может быть намного меньше. Но мои попытки нанести удар * в это с треском провалились.
Итак, Вопрос в том, : как написать этот шаблон более кратким образом, чтобы я все еще мог вытащить свои целевые группы?
Вероятно, это не имеет значения, но вот группы, которые я преследую:
$1: percent finished
$2: size uploaded so far
$6: size to upload
$8: average upload rate
Обновление: дополнительную информацию можно найти в моем блоге ( Как настроить OnMyCommand для создания индикатора выполнения для curl ), который объяснит, что я делаю и почему я после только регулярного выражения шаблон. Я на самом деле не пишу на языке, per se ... но я настраиваю инструмент для использования регулярных выражений.