致敬 Boost 庫的簡潔威力。本文展示使用 boost::tokenizer 輕鬆實現電話號碼等字串的多重分隔符分割。
支援四種分隔符(可混合使用):
;:1391067;62963517 或 1391067;62963;,:1391067,62963517 或 1391067,62963,;:1391067;62963 或 1391067;629637;,:1391067,62963 或 1391067,629617,混合範例:1391067,6617;62980;1234,5678;9900,0099;
#include <boost/tokenizer.hpp>
#include <string>
std::string _sTokenFaxNumber("629780;010620,01091293;1234,5678;8989");
// 定義分隔符集合
boost::char_separator<char> sep(";,;,");
// 建立 tokenizer 型別別名
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
// 分割並迭代
tokenizer tokens(_sTokenFaxNumber, sep);
for (tokenizer::iterator it = tokens.begin(); it != tokens.end(); ++it) {
_bstr_t bstrSingleFax((*it).c_str()); // 轉換為 BSTR 供後續使用
// 處理單一號碼...
}
適用於任何需解析多格式分隔符的結構化字串:電話號碼清單、CSV 變體、標籤序列、指令參數等。