是否有內置的方式來迭代非空捕獲只,或者我需要使用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:
豆豆&胡蘿蔔
甜菜
比薩
涼拌
有沒有辦法解決這個問題?