【发布时间】:2016-08-02 15:24:44
【问题描述】:
是否有一种内置方法可以仅迭代非空捕获,或者我是否需要使用 lambda/修改我的正则表达式?
例如,给定: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喜欢:
豌豆和胡萝卜
甜菜
比萨
凉拌卷心菜
有没有办法解决这个问题?
【问题讨论】:
标签: c++ regex string iterator spinach