命名空間
變體
動作

std::basic_regex

出自 cppreference.com
< cpp‎ | regex
 
 
 
正規表達式函式庫
類別
basic_regex
(C++11)
(C++11)
演算法
迭代器
例外
Traits
常數
(C++11)
正規表達式文法
 
 
定義於標頭檔 <regex>
template<

    class CharT,
    class Traits = std::regex_traits<CharT>

> class basic_regex;
(C++11 起)

類別模板 basic_regex 提供了一個用於存放正規表示式的通用框架。

為常見的字元型別提供了數個 typedef:

定義於標頭檔 <regex>
類型 定義
std::regex std::basic_regex<char>
std::wregex std::basic_regex<wchar_t>

目錄

[編輯] 成員型別

成員型別 定義
value_type CharT
traits_type Traits
string_type Traits::string_type
locale_type Traits::locale_type
flag_type std::regex_constants::syntax_option_type

[編輯] 成員函數

建構 regex 物件
(公開成員函數) [編輯]
解構 regex 物件
(公開成員函數) [編輯]
賦值內容
(公開成員函數) [編輯]
賦值內容
(公開成員函數) [編輯]
觀察器
回傳正規表示式中已標記子表達式的數量
(公開成員函數) [編輯]
回傳語法旗標
(公開成員函數) [編輯]
區域設定 (Locale)
取得區域設定資訊
(公開成員函數) [編輯]
設定區域設定資訊
(公開成員函數) [編輯]
修改器
交換內容
(公開成員函數) [編輯]

常數

語法選項 效果
ECMAScript 使用 修改後的 ECMAScript 正規表示式語法
basic 使用基本的 POSIX 正規表示式語法 (語法說明文件)。
extended 使用擴展的 POSIX 正規表示式語法 (語法說明文件)。
awk 使用 POSIX 中 awk 工具所使用的正規表示式語法 (語法說明文件)。
grep 使用 POSIX 中 grep 工具所使用的正規表示式語法。這實際上等同於 basic 選項,並額外將換行符號 '\n' 作為交替分隔符。
egrep 使用 POSIX 中 grep -E 選項所使用的正規表示式語法。這實際上等同於 extended 選項,並額外將換行符號 '\n' 作為除了 '|' 之外的另一種交替分隔符。
語法變體 效果
icase 字元匹配應在不區分大小寫的情況下進行。
nosubs 執行匹配時,所有已標記的子表達式 (expr) 都將被視為非標記子表達式 (?:expr)。匹配結果不會儲存到提供的 std::regex_match 結構中,且 mark_count() 為零。
optimize 指示正規表示式引擎提高匹配速度,代價是建構速度可能會變慢。例如,這可能意味著將非確定性有限自動機 (NFA) 轉換為確定性有限自動機 (DFA)。
collate 格式為 "[a-b]" 的字元範圍將會對區域設定敏感。
multiline (C++17) 指定若選取 ECMAScript 引擎,^ 將匹配行的開頭,而 $ 將匹配行的結尾。

ECMAScript, basic, extended, awk, grep, egrep 之中,最多只能選擇一個語法選項。若未選擇任何語法,則預設為 ECMAScript。其他選項作為變體,例如 std::regex("meow", std::regex::icase) 等同於 std::regex("meow", std::regex::ECMAScript|std::regex::icase)

basic_regex 中的成員常數是定義在命名空間 std::regex_constants 中的 syntax_option_type 常數的副本。

[編輯] 非成員函數

特化 std::swap 演算法
(函數模板) [編輯]

[編輯] 推導指引(自 C++17 起)

English Deutsch 日本語 中文(简体) 中文(繁體)