我想用boost::sregex_token_iterator
解析一個文件。需要支持定義正確的正則表達式
不幸的是,我無法找到正確的正則表達式來提取其中的形式爲FOO:BAR
的字符串。只有當每行一個這樣發生難度發現
下面的代碼示例是可用的,但我想,以支持每行本項多,最好也有一個「#」
所以條目等之後評論這
AA:BB CC:DD EE:FF #this is a comment
應導致3識別標記(AA:BB,CC:DD,EE:FF)
boost::regex re("((\\W+:\\W+)\\S*)+");
boost::sregex_token_iterator i(line.begin(), line.end(), re, -1), end;
for(; i != end; i++){
std::stringstream ss(*i);
...
}
任何支持是非常歡迎的。
代碼示例不完整:( – laiki
在正則表達式中不可能擁有可變數量的捕獲組,我要做的就是先用'#'分割並取第一個結果,導致在' #'。然後使用空格分割,這將導致單個對,然後可以使用':'進一步分割。 – SchoolBoy
我同意@SchoolBoy。通過分割可以做什麼應該很少通過正則表達式來完成 –