日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式

發布時間:2025/3/21 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 正則表達式語言 ECMAScript

  • 模式[ [::alpha: ] ] 匹配任意字母
  • 符號+和*分別表示我們希望“ 一個或多個” 或“ 零個或多個” 匹配。

2. 指定 regex 對象的選項

當我們定義一個 regex 或是對一個 regex 調用 assign 為其賦予新值時, 可以指定一些標志來影響 regex 如何操作。 這些標志控制 regex 對象的處理過程。

當定義一個regex或是對一個regex調用assign為其賦予新值時,可以指定其標志。

2.1 regex(和wregex)選項

  • 最后 6 個標志指出編寫正則表達式所用的語言。 對這 6 個標志, 我們必須設置其中之一,且只能設置一個。

  • 默認情況下, ECMAScript 標志被設置, 從而 regex 會使用 ECMA-262規范, 這也是很多 Web 瀏覽器所使用的正則表達式語言。

操作描述
regex r(re)re表示一個正則表達式,可以是一個string、一個表示字符范圍的迭代器對
regex r(re, f)一個指向空字符結尾的字符數組的指針等。f是指出對象如何處理的標志。
r1 = re將r1中的正則表達式替換為re,re表示一個正則表達式,可以是另一個regex對象、一個string、一個指向空字符結尾的字符數組的指針或是一個花括號包圍的字符列表
r1.assign(re,f)與使用賦值運算符(=)效果相同;可選的標志f也與regex的構造函數中對應的參數含義相同
r.mark_count()r中子表達式的數目
r.flags()返回r的標志集

2.2 定義regex時指定的標志

定義在regex和regex_constants::syntax_option_type中

標志符說明
icase在匹配過程中忽略大小寫
nosubs不保存匹配的子表達式
optimize執行速度優先于構造速度
ECMAScript使用ECMA-262指定的語法
basic使用POSIX基本的正則表達式
extended使用POSIX擴展的正則表達式
awk使用POSIX版本的awk語言的語法
grep使用POSIX版本的grep語言的語法
egrep使用POSIX版本的egrep語言的語法

使用icase標志來查找具有特定擴展名的文件名,其示例如下:

//正則表達式[^c]表明我們希望匹配任意不是c的字符,而[^c]ei指出希望匹配這種字符后接ei的字符串。 //一個或多個字母或數字字符后接一個'.'再接"cpp"或"cxx"或"cc" regex r("[[:alnum:]] + \\.(cpp|cxx|cc)$", regex::icase); smatch results; string filename; while (cin >> filename)if (regex_search(filename, results, r))cout << results.str() << endl; //打印匹配結果

總結

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。