《超越C++標準庫:Boost庫導引》:Boost庫簡介-字串和文本處理

來源:互聯網
上載者:User
字串和文本處理Boost.Regex

Regex對於解決相當數量的模式比對(pattern-matching)問題是至關重要的。它們經常被用於處理長字串、非精確地尋找子字串、根據某些格式tokenize字串,或者依照某個標準對字串進行修改。以前C++缺少對於Regex的支援,使用者不得不求助於其它對Regex有強有力支援的語言,比如Perl,awk和sed。Regex對於Regex提供高效有力的支援,它遵循與標準模板庫(STL)相同的設計理念,這使得它的用法相當直觀。Regex已經被即將到來的(標準)庫技術報告所採納。更多資訊請參閱“Library 5: Regex”。

Regex的作者是John Maddock博士。

Boost.Spirit

Spirit庫是一個函數式的(functional)、用以產生遞迴下降式解析器(recursive-decent parser)的架構。通過它,你可以建立命令列解析器,甚至一門語言的編譯預先處理庫[1]。它使用(接近於)擴充的巴科斯-諾爾範式(EBNF)文法,允許程式員直接通過C++代碼指定文法規則。解析器通常很難寫的優雅,尤其是針對某個特定問題的時候,它們很快變得難以維護和理解。Spirit避免了這些問題,而且給出了與手寫(hand-tuned)解析器相同(或幾乎相同)的運行效率。

Spirit的作者是Joel de Guzman,以及一個經驗豐富的程式員團隊。

Boost.String_algo

這是一組與字串相關的演算法。這些有用的演算法涉及大小寫轉換、去除字串頭尾的多餘字元、切分字串、尋找/替換等等。這一組演算法是C++標準庫字串演算法的擴充。

String_algo的作者是Pavol Droba。

Boost.Tokenizer

這個庫提供了把字元序列拆分成token的方法。通常的解析工作包括從由分割符所分割的文字資料流中尋找指定資料。如果能夠把這樣一個序列當作一系列裝在容器裡的元素來對待,就輕鬆多了,這些元素是根據使用者定義的標準來進行分割的。這樣解析(parsing)就獨立於對這些元素所實施的操作,確切地說,Tokenizer庫提供的就是這種抽象機制。使用者決定字元序列是如何被分割的,當使用者要求處理新的元素的時候,由庫來尋找相應的tokens。

Tokenizer庫的作者是John Bandela。



[1] Wave庫說明了這一點,它通過使用Spirit實現了一個高度相容的C++編譯預先處理庫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.