{data={data1,data2},connection=data3}, {{data4},data5}, {{data6},data7}, ...
Мне нужно извлечь данные из каждой пары, т. е. мне нужны данные1, данные2, данные3 и т. д.
Это регулярное выражение, которое я придумал:
Код: Выделить всё
(\{(?:\S*=)?\{\S+\})(?:,(?:\S*=)?\}\S+)?
Код: Выделить всё
{data={data1,data2},connection=data3}Код: Выделить всё
#include
#include
#include
int main()
{
std::string text{ "{data={data1,data2},connection=data3}, {{data4},data5}, {{data6},data7}" };
const std::regex rx{ R"data((\{\S*\{\S+\})(?:,(\S*=)?\}\S+)?)data" };
std::smatch matches;
if (std::regex_match(text, matches, rx))
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/54446021/regex-to-match-the-same-pattern-many-times[/url]
Мобильная версия