我正在嘗試根據空格拆分字串,除非在引號內。這是我在網上找到的正則運算式(\\w |\".*?\")。但是,當我嘗試使用std::regex拆分字串時,我只得到空字串。
這是我必須拆分的代碼:
std::regex exp("[^\\s\"'] |\"([^\"]*)\"|'([^']*)'");
std::sregex_token_iterator itr(s.begin(), s.end(), exp, -1);
std::sregex_token_iterator end;
for (; itr != end; itr )
std::cout << *itr << std::endl;
僅" "當我傳遞類似"A "B C" 123". 我可能做錯了什么?
uj5u.com熱心網友回復:
來自檔案std::sregex_token_iterator:
submatch - 應該回傳的子匹配的索引。“0”代表整個匹配,“-1”代表不匹配的部分(例如,匹配之間的東西)。
由于您傳遞 -1,這意味著您正在列印不匹配的部分,而不是匹配的部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/512396.html
標籤:C 正则表达式
