C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配标志
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配标志
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 用來控制匹配和格式的標志
標準庫還定義了用來在替換過程中控制匹配或格式的標志,這些標志可以傳遞給函數(shù)
regex_search 或 regex_match 或是類 smatch 的 format 成員
定義在 regex_constants::match_flag_type中
| match_default | 等價于format_default |
| match_not_bol | 不將首字符作為行首處理 |
| match_not_eol | 不將尾字符作為行尾處理 |
| match_not_bow | 不將首字符作為單詞首處理 |
| match_not_eow | 不將尾字符作為單詞尾處理 |
| match_any | 如果存在多于一個匹配,則可以返回任意一個匹配 |
| match_not_null | 不匹配任何空序列 |
| match_continuous | 匹配必須從輸入的首字符開始 |
| match_prev_avail | 輸入序列包含第一個匹配之前的內(nèi)容 |
| format_default | 用ECMAScript規(guī)則替換字符串 |
| format_sed | 用POSIX sed規(guī)則替換字符串 |
| format_no_copy | 不輸出輸入序列中未匹配的部分 |
| format_first_only | 只替換子表達式的第一次出現(xiàn) |
1.1 使用格式標志
默認情況下, replace 輸出整個輸入序列。 未與正則表達式匹配的部分會原樣輸出;
匹配的部分按格式字符串指定的格式輸出。 我們可以通過在 regex_replace 調(diào)用中指定 format no copy 來改變這種默認行為:
// 只生成電話號碼: 使用新的格式字符串 string fmt2 = "$2.$5.$7 "; / / 在最后一部分號碼后放置空格作為分隔符 // 通知regex replace只拷貝它替換的文本 cout << regex_replace (s, r, fmt2, format_no_copy) << endl;//給定相同的輸入, 此版本的程序生成 201.555 . 2368 862.555. 0123 973.555 . 0130 609.555 . 0132 201.555 . 0175 800.555 . 0000總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配标志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha