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_type在
regex(和
basic_regex)中,它用於構造或賦值
regex 物件,以指定物件使用的語法。它可以接受的可能值是
flag | 對語法的影響 | 說明 |
icase | 不區分大小寫 | 正則表示式匹配時不考慮大小寫。 |
nosubs | 無子表示式 | 要放回的字元的match_results結構將不包含子表示式匹配。 |
optimize | 最佳化匹配 | 優先考慮匹配效率而不是構造正則表示式物件的效率。 |
collate | 區域設定敏感性 | 字元範圍,例如"[a-b]",受區域設定影響。 |
ECMAScript | ECMAScript 語法 | 正則表示式遵循其中一種語法。 位掩碼必須設定這六種語法標誌中的一種(且僅一種)才能具有有效值。 |
basic | 基本 POSIX 語法 |
extended | 擴充套件 POSIX 語法 |
awk | Awk POSIX 語法 |
grep | Grep POSIX 語法 |
egrep | Egrep POSIX 語法 |
flag | 對語法的影響 | 說明 |
icase | 不區分大小寫 | 正則表示式匹配時不考慮大小寫。 |
nosubs | 無子表示式 | 子表示式不被視為已標記。 要放回的字元的match_results結構將不包含子表示式匹配。 |
optimize | 最佳化匹配 | 優先考慮匹配效率而不是構造正則表示式物件的效率。 |
collate | 區域設定敏感性 | 字元範圍,例如"[a-b]",受區域設定影響。 |
ECMAScript | ECMAScript 語法 | 正則表示式遵循其中一種語法。 位掩碼最多可以設定這六種語法標誌中的一種才能具有有效值。如果未設定任何標誌,則假定為 ECMAScript。 |
basic | 基本 POSIX 語法 |
extended | 擴充套件 POSIX 語法 |
awk | Awk POSIX 語法 |
grep | Grep POSIX 語法 |
egrep | Egrep POSIX 語法 |
位掩碼型別match_flag_type
用作
regex_match、
regex_search 和
regex_replace 函式的引數,也用作
regex_iterator 和
regex_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_bol和match_not_bow被忽略) |
format_default | 預設格式 | 使用標準格式規則替換匹配項(ECMAScript 的 replace 方法使用的那些)。**。 |
format_sed | sed 格式 | 使用與 POSIX 中 sed 實用程式相同的規則來替換匹配項。 |
format_no_copy | 不復制 | 替換匹配項時,不會複製目標序列中與正則表示式不匹配的部分。 |
format_first_only | 僅首次 | 僅替換正則表示式的第一次出現。 |
** 這些常量具有
空位掩碼值,並在與其他標誌值組合時被忽略。
位掩碼型別error_type
由
regex_error 使用,用於識別丟擲異常的錯誤型別
flag | error |
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 | 確定正則表示式是否可以匹配指定字元序列時記憶體不足。 |