regex_constants 命名空間
規則運算式旗標的命名空間。
語法
namespace regex_constants {
enum syntax_option_type;
enum match_flag_type;
enum error_type;
}
備註
regex_constants
命名空間會封裝幾個旗標類型及其關聯的旗標值。
名稱 | 描述 |
---|---|
error_type | 規則運算式語法錯誤報告的旗標。 |
match_flag_type | 規則運算式比對選項的旗標。 |
syntax_option_type | 用於選取語法選項的旗標。 |
需求
Header:<regex>
命名空間:std
regex_constants::error_type
規則運算式語法錯誤報告的旗標。
enum error_type
{ // identify error
error_collate,
error_ctype,
error_escape,
error_backref,
error_brack,
error_paren,
error_brace,
error_badbrace,
error_range,
error_space,
error_badrepeat,
error_complexity,
error_stack,
error_parse,
error_syntax
};
備註
此類型為列舉類型,描述可以保留錯誤旗標的物件。 不同的旗標值為:
error_backref
-- 運算式包含無效的反向參考
error_badbrace
-- 運算式在 { } 運算式中包含無效計數
error_badrepeat
-- 重複運算式 (大部分內容中含 '* '、''、'+'、' {' 其中之一) 之前沒有運算式
error_brace
-- 運算式包含不對稱的 '{' 或 '}'
error_brack
-- 運算式包含不對稱的 '[' 或 ']'
error_collate
-- 運算式包含無效的定序項目名稱
error_complexity
-- 嘗試比對因為太複雜而失敗
error_ctype
-- 運算式包含無效的字元類別名稱
error_escape
-- 運算式包含無效的逸出序列
error_paren
-- 運算式包含不對稱的 '(' 或 ')'
error_parse
-- 無法剖析運算式
error_range
-- 運算式包含無效的字元範圍規範
error_space
-- 剖析規則運算式失敗,因為沒有足夠的資源可供使用
error_stack
-- 嘗試比對失敗,因為沒有足夠的記憶體可供使用
error_syntax
-- 無法剖析語法錯誤
error_backref
-- 運算式包含無效的反向參考
regex_constants::match_flag_type
規則運算式比對選項的旗標。
enum match_flag_type
{ // specify matching and formatting rules
match_default = 0x0000,
match_not_bol = 0x0001,
match_not_eol = 0x0002,
match_not_bow = 0x0004,
match_not_eow = 0x0008,
match_any = 0x0010,
match_not_null = 0x0020,
match_continuous = 0x0040,
match_prev_avail = 0x0100,
format_default = 0x0000,
format_sed = 0x0400,
format_no_copy = 0x0800,
format_first_only = 0x1000,
_Match_not_null = 0x2000
};
備註
此類型是位元遮罩類型,描述根據規則運算式比對文字序列時所要使用的選項,以及取代文字時所要使用的格式旗標。 這些選項可以搭配 |
使用。
比對選項包括:
match_default
match_not_bol
-- 不會將目標序列中的第一個位置視為行首
match_not_eol
-- 不會將目標序列中超過結尾的位置視為行尾
match_not_bow
-- 不會將目標序列中的第一個位置視為字首
match_not_eow
-- 不會將目標序列中超過結尾的位置視為字尾
match_any
-- 如果可能有多個相符項目,則可接受所有相符項目
match_not_null
-- 不會將空的子序列視為相符項目
match_continuous
-- 只會從目標序列開頭搜尋相符項目
match_prev_avail
-- --first
是有效的迭代器;如果已設定,則會忽略 match_not_bol
和 match_not_bow
格式旗標包括:
format_default
-- 使用 ECMAScript 格式規則
format_sed
-- 使用 sed 格式規則
format_no_copy
-- 不會複製不符合規則運算式的文字
format_first_only
-- 只會搜尋第一個相符項目
regex_constants::syntax_option_type
用於選取語法選項的旗標。
enum syntax_option_type
{ // specify RE syntax rules
ECMAScript = 0x01,
basic = 0x02,
extended = 0x04,
awk = 0x08,
grep = 0x10,
egrep = 0x20,
_Gmask = 0x3F,
icase = 0x0100,
nosubs = 0x0200,
optimize = 0x0400,
collate = 0x0800
};
備註
此類型是位元遮罩類型,用於描述編譯規則運算式時,所要使用的語言規範和語法修飾詞。 這些選項可以搭配 |
使用。 一次只能使用一個語言規範。
語言規範如下:
ECMAScript
-- 編譯成 ECMAScript
basic
-- 編譯成 BRE
extended
-- 編譯成 ERE
awk
-- 編譯成 awk
grep
-- 編譯成 grep
egrep
-- 編譯成 egrep
語法修飾詞如下:
icase
-- 使所有相符項目皆不區分大小寫
nosubs
-- 實作不需要持續追蹤擷取群組的內容
optimize
-- 實作應強調比對速度,而不是規則運算式的編譯速度
collate
-- 使所有相符項目皆區分地區設定
另請參閱
<regex>
regex_error 類別
<regex> 函式
regex_iterator 類別
<regex> 運算符
regex_token_iterator 類別
regex_traits 類別
<regex> typedefs