是否有一种内置方法可以仅迭代非空捕获,或者我是否需要使用 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"));
问题当然是我得到如下输出:
豌豆和胡萝卜
甜菜
披萨
凉拌卷心菜
有没有解决的办法?