basic_regex 構造体テンプレート
-
template<typename BidiIter>
struct basic_regex basic_regex<>クラステンプレートはコンパイル済み正規表現を保持するクラスである。
概要
// ヘッダ:<boost/xpressive/basic_regex.hpp> template<typename BidiIter> struct basic_regex { // 構築、コピー、解体basic_regex();basic_regex(basic_regex< BidiIter > const &); template<typename Expr>basic_regex(Expr const &); basic_regex< BidiIter >&operator=(basic_regex< BidiIter > const &); template<typename Expr> basic_regex< BidiIter >&operator=(Expr const &); // 公開メンバ関数 std::size_tmark_count() const; regex_id_typeregex_id() const; voidswap(basic_regex< BidiIter > &); // 公開静的メンバ関数 template<typename InputIter> static basic_regex< BidiIter >compile(InputIter, InputIter, flag_type = regex_constants::ECMAScript); template<typename InputRange> static basic_regex< BidiIter >compile(InputRange const &, flag_type = regex_constants::ECMAScript); static basic_regex< BidiIter >compile(char_type const *, flag_type = regex_constants::ECMAScript); static basic_regex< BidiIter >compile(char_type const *, std::size_t, flag_type); };
説明
basic_regex 構築、コピー、解体の公開演算
-
basic_regex()
- 事後条件
regex_id() == 0
- 事後条件
mark_count() == 0
-
basic_regex(basic_regex<BidiIter> const &that)
- パラメータ
that -- コピーする
basic_regexオブジェクト。- 事後条件
- 事後条件
mark_count() == that.mark_count()
-
template<typename Expr>
basic_regex(Expr const &expr) 静的正規表現から構築する。
- パラメータ
expr -- 静的正規表現。
- 要件
Exprは静的正規表現の型。- 事後条件
regex_id() != 0
- 事後条件
mark_count() >= 0
-
basic_regex<BidiIter> &operator=(basic_regex<BidiIter> const &that)
- パラメータ
that -- コピーする
basic_regexオブジェクト。- 事後条件
- 事後条件
mark_count() == that.mark_count()
- 戻り値
*this
-
template<typename Expr>
basic_regex<BidiIter> &operator=(Expr const &expr) 静的正規表現から構築する。
- パラメータ
expr -- 静的正規表現。
- 要件
Exprは静的正規表現の型。- 事後条件
regex_id() != 0
- 事後条件
mark_count() >= 0
- 戻り値
*this
- 例外
std::bad_alloc -- メモリ不足のとき
basic_regex の公開メンバ関数
-
std::size_t mark_count() const
この正規表現内の捕捉済み部分式の数を返す。
-
regex_id_type regex_id() const
この正規表現を一意に識別するトークンを返す。
-
void swap(basic_regex<BidiIter> &that)
この
basic_regexオブジェクトの内容を別のものと交換する。注釈
参照まで追跡しない浅い交換である。
basic_regexオブジェクトを参照により別の正規表現に組み込み、他のbasic_regexオブジェクトと内容を交換すると、外側の正規表現からはこの変更を検出できない。これはswapが例外を送出できないためである。- パラメータ
that -- 他の
basic_regexオブジェクト。- 例外
例外を送出しない。
basic_regex の公開静的メンバ関数
-
template<typename InputIter>
static basic_regex<BidiIter> compile(InputIter begin, InputIter end, flag_type flags) 文字の範囲から正規表現オブジェクトを構築するファクトリメソッド。regex_compiler<BidiIter>().compile(begin, end, flags) と等価。
- パラメータ
begin -- コンパイルする正規表現を表す文字範囲の先頭。
end -- コンパイルする正規表現を表す文字範囲の終端。
flags -- 文字列をどのように解釈するかを指定する省略可能なビットマスク(
syntax_option_typeを見よ)。
- 要件
[begin, end)が有効な範囲である。[begin, end)で指定した文字の範囲が正規表現の有効な文字列表現である。- 戻り値
文字の範囲が表す正規表現に相当する
basic_regexオブジェクト。- 例外
regex_error --
-
template<typename InputRange>
static basic_regex<BidiIter> compile(InputRange const &pat, flag_type flags) 利便性のためのメンバ関数多重定義。上記関数と受け取る引数が異なるのみ。
-
static basic_regex<BidiIter> compile(char_type const *begin, flag_type flags)
利便性のためのメンバ関数多重定義。上記関数と受け取る引数が異なるのみ。
-
static basic_regex<BidiIter> compile(char_type const *begin, std::size_t len, flag_type flags)
利便性のためのメンバ関数多重定義。上記関数と受け取る引数が異なるのみ。