發表文章

目前顯示的是 8月, 2014的文章

使用regular expression來match中括號(square bracket)

沒想到在C#中也算玩過一陣子的正規表示式(Regular Expression),來到了Linux C/C++中竟然時常碰壁。 現在只是想要找一個用中括號([])包起來的字串,竟然沒有想的那麼簡單。 假設我要找的目標為 [1234],在以前C#的時候的寫法會是\[(?<num>(\d*)\]。來到了Linux C/C++時,也是用原本的概念組了一串這樣的比對格式: \[([0-9]*\] 沒想到一使用std::regex_match()後就掛了。在編譯(或說指定)這個比對格式給std::regex時就出現Exception了。 這個問題查了一些google上的文章,大家都說遇到正規表示中有的字元的話就是前面加上跳脫字元\就可以啦。沒想到結果會是失敗。 後來看到有人指示要比對中括號的話,需要將它放在中括號中 !! 就是用這樣的方式: [\[]([0-9]*)[\]] 指定要比對於中括號中給定的字元,也就是中括號的左右兩邊的符號。 最後終於是正常編譯過關,且可以正常比對成功了。 而且要注意的是,當將上面這段比對格式放到C/C++的程式碼中,針對\不用再重覆一次,也就是不要寫成 "[\\[]([0-9]*)[\\]]" 這樣比對的結果也是失敗的喔。

2014 8月書單

圖片
今天正好有空閒時間,由台北的娘家步行約兩公里、花了20分鐘經過植物園、總統府,來到了重慶南路上的天瓏書局,看看這陣子有沒有出些什麼有趣或是工作上有用到的書。逛了大約半小時,大致上找到了三本想要買的書。 你也可以和大師這麼接近 - 用C++開發頂級多執行緒網路函數庫Muduo 這本書主要是要介紹使用Open Source的Muduo來開發有關網路相關應用程式時,處理多執行緒相關的書。前面第一章大致上介紹了在多執行緒上開發應用程式會遇到且會花上許多時間除錯的經驗。 看了一下內容,還蠻想買的。而且正好有提到一個我目前遇到但還無法解決的問題。就是你定義一個自已的類別的const函式時,如果裏面有需要用到mutex來同步多執行緒的存取的話,因為會改變到mutex的狀態,所以你的函式變成也無法修飾成const。書中是說可以用mutable這個修飾字來處理。實際的狀況就等買了書再仔細看囉。 不過天瓏的繁體版一本只能打85折。只好回家再到網路上找看看有沒有79折的了。博客來目前是9折,金石堂、灰熊愛讀書都是79折,只是有訂購的話才會進貨。 後來google了一下,作者的部落格中也有Muduo的相關PPT及 教學影片 可供參考。另外也看到 原作者陳碩的部落格 有介紹可以到amazon.cn買電子版的。雖然是簡體版的,但電子版正合我意。因為家裏的空間真的不大,買了很多書後來過年大掃除時,都只能論斤賣了。很可惜。 不過要買amazon.cn的電子書,還真的讓我花了一些時間。原本以為只要上網註冊一個帳號就可以買了,沒想到一註冊完要買時,它說我是非中國的帳戶不能買電子版的。 原本要請在大陸的親友代為用我的帳戶登入去購買的,以為他是看上網的地區。沒想到也是不行。後來只好去有關帳戶設定那邊看一下,原來可以更改所在地。就用親友的大陸地址改了一下。 還真的可以改地區耶,接著就是去試看看能否購買囉。 再回到原來的網址,果然出現kindle電子版的購買選項了。接著就是用網頁上的購買流程付費後,馬上到我的iPad中開啟Kindle for iPad,同步一下就可以看到剛剛買的書了。下載後就可以觀看了。 Specification by Example 中文版:團隊如何交付正確的軟體 博碩出版社最近開始一系列地出一些比較高層次的書籍,提