共用方式為


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_bolmatch_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