Мне нужно извлечь информацию типа того же (например, Имя, Фамилия, Телефон, ...) из множества различных текстовых источников, каждый из которых имеет свой формат и различный порядок переменных. представляет интерес.
Мне нужна функция, которая выполняет извлечение на основе регулярного выражения и возвращает результат в виде описательных переменных. Другими словами, вместо того, чтобы возвращать каждый результат совпадения как submatch[0], submatch[1], submatch[2], ...,
, сделайте одно из следующих:
возврат std::map
, чтобы получить доступ к субматчам через:
submatch["first_name"], submatch["last_name"], submatch["telephone"]
возвращают переменные с субматчами, чтобы к субматчам можно было получить доступ через:
submatch_first_name, submatch_last_name, submatch_telephone
Я могу написать класс-оболочку около boost::regex
, чтобы сделать первый, но я надеялся, что будет встроенный или более элегантный способ сделать это в C ++ / Boost / STL / C.