C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式错误
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式错误
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 指定或使用正則表達(dá)式時(shí)的錯(cuò)誤
如果我們編寫(xiě)的正則表達(dá)式存在錯(cuò)誤, 則在運(yùn)行時(shí)標(biāo)準(zhǔn)庫(kù)會(huì)拋出一個(gè)類型為regex 的異常
eg.
try {// alnum右括號(hào)少了一個(gè), 構(gòu)造函數(shù)會(huì)拋出異常regex r("[[:alnum:] + \\.(cpp | cxx | cc)$", regex::icase); } catch (regex_error e) {cout << e.what() << "\ncode: " << e.code() << endl; } 輸出: regex_error (error_brack) : The expression contained mismatched [ and ] . code: 41.1 正則表達(dá)式錯(cuò)誤類型
| error_collate | 無(wú)效的元素校對(duì)請(qǐng)求 |
| error_ctype | 無(wú)效的字符類 |
| error_escape | 無(wú)效的轉(zhuǎn)義字符或無(wú)效的尾置轉(zhuǎn)義 |
| error_backref | 無(wú)效的向后引用 |
| error_brack | 不匹配的方括號(hào)([或]) |
| error_paren | 不匹配的小括號(hào)((或)) |
| error_brace | 不匹配的花括號(hào)({或}) |
| error_badbrace | {}中無(wú)效的范圍 |
| error_range | 無(wú)效的字符范圍(如[z-a]) |
| error_space | 內(nèi)存不足,無(wú)法處理此正則表達(dá)式 |
| error_badrepeat | 重復(fù)字符(*、?、+或{)之前沒(méi)有有效的正則表達(dá)式 |
| error_complexity | 要求的匹配關(guān)于復(fù)雜 |
| error_stack | 棧空間不足,無(wú)法處理匹配 |
-
code 成員編號(hào)從0開(kāi)始
-
應(yīng)該努力避免創(chuàng)建很多不必要的regexo,特別是, 如果你在一個(gè)循環(huán)中使用正則表達(dá)式, 應(yīng)該在循環(huán)外創(chuàng)建它,而不是在每步迭代時(shí)都編譯它
(構(gòu)造一個(gè) regex 對(duì)象以及向一個(gè)已存在的 regex 賦予一個(gè)新的正則表達(dá)式可能是非常耗時(shí)的。 為了最小化這種開(kāi)銷)
總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha