У меня есть строка для токенизации. Его форма HHmmssff
, где H
, m
, s
, f
— цифры.
Предполагается, что он должен быть разделен на четыре двузначных числа, но мне нужно, чтобы он также принимал сокращенные формы, например sff
, поэтому он интерпретирует его как 00000sff
. Я хотел использовать offset_separator
boost::tokenizer
, но, похоже, он работает только с положительными смещениями, и я хотел бы, чтобы он работал как бы в обратном порядке.
Хорошо, одна идея состоит в том, чтобы дополнить строку нулями слева, но, возможно, сообщество придумает что-то супер умное. ;)
Изменить. Только что вступили в силу дополнительные требования.
Основная потребность в более разумном решении заключалась в том, чтобы обрабатывать все случаи, такие как f
, ssff
, mssff
и т. д., но также принимать более полное обозначение времени, например HH:mm:ss:ff
с его сокращенными формами, например. s:ff
или даже s:
(предполагается, что это интерпретируется как s:00
).
В случае, когда строка заканчивается на :
, я, очевидно, также могу дополнить ее двумя нулями, затем удалить все разделители, оставив только цифры, и проанализировать полученную строку с духом.
Но кажется, что было бы немного проще, если бы был способ заставить токенизатор смещения возвращаться от конца строки (смещения -2, -4, -6, -8) и лексически приводить числа к int
s.