C++11 REGEX MATCH ALL 獲取全部匹配


C++11 REGEX MATCH ALL 獲取全部匹配

C++11 Regex

處理規模較小,較為復雜的字符串邏輯時可能會用到。

經過了很多比較,我認為 regex_token_iterator 是相對簡單的。

有兩個選擇 sregex_token_iterator 和 sregex_iterator

概念區分

  • regex_token_iterator
  • regex_iterator
  • sregex_token_iterator
  • sregex_token_iterator
  • cregex_token_iterator
  • cregex_iterator

看了下面這個一般就明白了

regex_token_iterator 是一個模板類

sregex_token_iterator 和 cregex_token_iterator 分別是對應的標准C++字符串和C字符串版本

 

regex_iterator 同理

 

關於 regex_token_iterator 和 regex_iterator 的區別

網上的博客說的有些讓人摸不着頭腦,我簡單說一下我的看法。

regex_token_iterator  相當於 將 regex_iterator 中的第 i 列(或數組集合)單獨抽取的版本。(捕獲組)

 

當第四個參數為-1時,表明該迭代器不會匹配所有捕捉組內的內容。

代碼示例

下面的代碼使用了regex, C++ Raw string literal, currying, range-for . 均需要至少 C++11

!!此代碼有諸多不嚴謹之處(懸掛引用等),僅供演示

 

附上沙雕示意圖一張

REFERENCE

  1. https://blog.csdn.net/qq_28633157/article/details/50849904


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM