#include
"boost/algorithm/string.hpp"
#include
"boost/algorithm/string/regex.hpp"
#include
#include
#include
#include
#include
"boost/regex.hpp"
#include
#include
/*參考
*/int
main()
表示n 到 m 次
\\w+\\s\\w+ 形式(w+ 與w差不多 ,「+」意義:至少匹配一次) */
//std::string s = "boris schaling";
匹配 任意字元+空格+字元,所以結果是「s s」
//boost::iterator_ranger = boost::algorithm::find_regex(s, boost::regex("\\w\\s\\w"));
//std::cout << r << std::endl;
//*************** 正規表示式庫 boost.regex
//****函式 boost::regex_match() 用於字串與正規表示式的比較。 在整個字串匹配正規表示式時其返回值為 true 。
/*std::string s =
"boris schaling"
; boost::regex expr
("\\w+\\s\\w+");
std::cout << boost::
regex_match
(s, expr)
<< std::endl;*/
// ******************函式 boost::regex_search() 可用於在字串中搜尋正規表示式。
/*std::string s = "boris schaling";
boost::regex expr("(\\w+)\\s(\\w+)");
boost::smatch what;
if (boost::regex_search(s, what, expr))
;引數為 begin 與end
//boost::offset_separator sep(offsets, offsets + 3);
//tokenizer tok(s, sep);
//for (tokenizer::iterator it = tok.begin(); it != tok.end(); ++it)
//std::cout << *it << std::endl;
//*************格式化輸出庫 boost.format
類使用置於兩個百分號之間的數字作為佔位符,佔位符稍後通過 % 操作符與實際資料連線。
//以 16.9.2008的格式輸出。
//std::cout << boost::format("%1%.%2%.%3%") % 16 % 9 % 2008 << std::endl;
//如果要月份出現在日期之前,即美式表示,只需交換佔位符即可。結果變成 9/16/2008 。
//std::cout << boost::format("%2%/%1%/%3%") % 16 % 9 % 2008 << std::endl;
//操作器 std::showpos() 通過 boost::io::group() 與數字 99 連線,所以只要顯示 99 , 在它前面就會自動加上加號。
//std::cout << boost::format("%1% %2% %1%") % boost::io::group(std::showpos, 99) % 100 << std::endl;
//如果需要加號僅在 99 第一次輸出時顯示, 則需要改造格式化佔位符。/*
需要將資料的引用符號由 1$ 變為 1
% ,還需要在其兩側各新增乙個附加的管道符號,即將佔位符 %
1% 替換為 %
|1$+
|。 結果為 +
9910099*
///std::cout << boost::format("%|1$+| %2% %1%") % 99 % 100 << std::endl;
/* 以下例子在執行時會出現錯誤,因為它給第二個和第三個佔位符設定了引用但是卻忽略了第乙個。
*//*try
catch (boost::io::format_error &ex)
*///以下例子演示了不引用資料的方法。
//第二、第三個佔位符的管道符號可以被安全地省略,因為在這種情況下,他們並不指定格式。
//std::cout << boost::format("%|+| %|| %||") % 99 % 100 % 99 << std::endl;
//格式化字串中字母 'd' 的使用並不表示輸出數字,
//而是表示 boost::format 類所使用的內部流物件上的 std::dec() 操作器,
/* 它可以使用某些對 std::printf() 函式無意義的格式字串,如果使用 std::printf() 會導致程式在執行時崩潰。
*///std::cout << boost::format("%+d %d %d") % 99 % 100 % 99 << std::endl;
/* 在 std::printf() 函式中,字母 's' 只用於表示型別為 const char* 的字串,然而以下程式卻能正常執行。
在 boost.format 庫中,這並不代表強制為字串,它會結合適當的操作器,調整內部流的操作模式。
所以即使在這種情況下, 在內部流中加入數字也是沒問題的。
*/ std::cout << boost::
format
("%+s %s %s")%
99%100%
99<< std::endl;
system
("pause");
return0;
}
python初學五 字串
字串由一串行的單個字元組成,下標由0開始,slicing string b a 0 4 擷取包括第0位 不包括第4位的字元。如果a 4 擷取從一開始到第三位的字元。如果a 8 擷取包括第8位到最後一位的字元。如果a 擷取整個字串。如果a 6 20 若第二位超出整個字串的長度 len string n...
Swift 五 字串和字元
1 swift入門學習筆記 第一版 對swift的基礎知識點進行梳理總結。知識點一直在變,只是作為參考,以蘋果官方文件為準 2 在學習完基本的知識點以後會結合官方文件及相關資料,在此版本的基礎上進行新增更改。字串 let datequestion the month is let datenum 1...
Python學習筆記(五) 字串
以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 17 19 50 學習筆記 1,在python中,單引號和雙引號的是一樣的。2,在字串前使用r可以關閉字元轉義,使用u或u則表示unicode字串。可以混合使用u和r。在un...