namespace
<regex>

std::regex_constants

regex constants
此名稱空間聲明瞭三個位掩碼型別,用於正則表示式庫的元素,以及這些型別的常量值

這些位掩碼型別中的每一種可能已在您的庫中實現為列舉型別、整型或 bitset。無論哪種情況,它都可以透過按位或運算子(|):
1
bitmask_type object = flag1 | flag2 | flag3;

透過在特定名稱空間下提供這些值,您可以選擇將此名稱空間(透過using namespace std::regex_constants)直接包含到您的程式碼中,以便更輕鬆地引用這些值,而無需考慮您是否包含更通用的名稱空間std還是不包含。

位掩碼型別syntax_option_type

別名為成員型別flag_typeregex(和 basic_regex)中,它用於構造或賦值 regex 物件,以指定物件使用的語法。它可以接受的可能值是

flag對語法的影響說明
icase不區分大小寫正則表示式匹配時不考慮大小寫。
nosubs無子表示式要放回的字元的match_results結構將不包含子表示式匹配。
optimize最佳化匹配優先考慮匹配效率而不是構造正則表示式物件的效率。
collate區域設定敏感性字元範圍,例如"[a-b]",受區域設定影響。
ECMAScriptECMAScript 語法正則表示式遵循其中一種語法。
位掩碼必須設定這六種語法標誌中的一種(且僅一種)才能具有有效值。
basic基本 POSIX 語法
extended擴充套件 POSIX 語法
awkAwk POSIX 語法
grepGrep POSIX 語法
egrepEgrep POSIX 語法
flag對語法的影響說明
icase不區分大小寫正則表示式匹配時不考慮大小寫。
nosubs無子表示式子表示式不被視為已標記。
要放回的字元的match_results結構將不包含子表示式匹配。
optimize最佳化匹配優先考慮匹配效率而不是構造正則表示式物件的效率。
collate區域設定敏感性字元範圍,例如"[a-b]",受區域設定影響。
ECMAScriptECMAScript 語法正則表示式遵循其中一種語法。
位掩碼最多可以設定這六種語法標誌中的一種才能具有有效值。如果未設定任何標誌,則假定為 ECMAScript
basic基本 POSIX 語法
extended擴充套件 POSIX 語法
awkAwk POSIX 語法
grepGrep POSIX 語法
egrepEgrep POSIX 語法

位掩碼型別match_flag_type

用作 regex_matchregex_searchregex_replace 函式的引數,也用作 regex_iteratorregex_token_iterator 建構函式的引數。

flag效果說明
match_default預設預設匹配行為。**。
match_not_bol非行首第一個字元不被視為行首"^"不匹配)。
match_not_eol非行尾最後一個字元不被視為行尾"$"不匹配)。
match_not_bow非詞首轉義序列"\b"不匹配為詞首
match_not_eow非詞尾轉義序列"\b"不匹配為詞尾
match_any任意匹配如果可能存在多個匹配,則任何匹配都可以接受。
match_not_null非空空序列不匹配。
match_continuous連續表示式必須匹配一個以第一個字元開頭的子序列。
子序列必須以第一個字元開頭才能匹配。
match_prev_avail先前可用第一個字元之前存在一個或多個字元。(match_not_bolmatch_not_bow被忽略)
format_default預設格式使用標準格式規則替換匹配項(ECMAScript 的 replace 方法使用的那些)。**。
format_sedsed 格式使用與 POSIX 中 sed 實用程式相同的規則來替換匹配項。
format_no_copy不復制替換匹配項時,不會複製目標序列中與正則表示式不匹配的部分。
format_first_only僅首次僅替換正則表示式的第一次出現。
** 這些常量具有空位掩碼值,並在與其他標誌值組合時被忽略。

位掩碼型別error_type

regex_error 使用,用於識別丟擲異常的錯誤型別

flagerror
error_collate表示式包含無效的排序元素名稱。
error_ctype表示式包含無效的字元類名稱。
error_escape表示式包含無效的跳脫字元或尾隨轉義。
error_backref表示式包含無效的反向引用。
error_brack表示式包含不匹配的方括號([]).
error_paren表示式包含不匹配的圓括號(()).
error_brace表示式包含不匹配的大括號({}).
error_badbrace表示式包含大括號之間無效的範圍({}).
error_range表示式包含無效的字元範圍。
error_space將表示式轉換為有限狀態機時記憶體不足。
error_badrepeat表示式包含一個重複說明符(例如*?+{)未被有效的正則表示式 precede。
error_complexity與正則表示式的匹配嘗試的複雜度超過了預設級別。
error_stack確定正則表示式是否可以匹配指定字元序列時記憶體不足。