Есть ли встроенный способ перебора непустых захватов или мне нужно использовать лямбда/изменить мое регулярное выражение?Есть ли способ отказаться от пустых захватов?
Например, const auto input = "Peas&Carrots Spinach-Casserole Beets Pizza Spinach-Salad Coleslaw"s
Я бы хотел найти продукты, которые не содержит содержит «Шпинат». Так что я могу сделать это:
const regex re{ "\\s*(?:\\S*Spinach\\S*|(\\S*))" };
copy(sregex_token_iterator(cbegin(input), cend(input), re, 1), sregex_token_iterator(), ostream_iterator<string>(cout, "\n"));
Проблема, конечно, в том, что I get an output как:
Горох & Морковь
Свекла
Пицца
Coleslaw
Есть ли способ обойти это?