名前空間
変種
操作

std::basic_regex

提供: cppreference.com
< cpp‎ | regex
ヘッダ <regex> で定義
template <

    class CharT,
    class Traits = std::regex_traits<CharT>

> class basic_regex;
(C++11以上)

クラステンプレート basic_regex は正規表現を保持するための汎用フレームワークを提供します。

一般的な文字型に対していくつかの特殊化が提供されます。

ヘッダ <regex> で定義
定義
regex basic_regex<char>
wregex basic_regex<wchar_t>

目次

[編集] メンバ型

メンバ型 定義
value_type CharT
traits_type Traits
string_type Traits::string_type
locale_type Traits::locale_type
flag_type std::regex_constants::syntax_option_type

[編集] メンバ関数

regex オブジェクトを構築します
(パブリックメンバ関数) [edit]
regex オブジェクトを破棄します
(パブリックメンバ関数) [edit]
内容を代入します
(パブリックメンバ関数) [edit]
内容を代入します
(パブリックメンバ関数) [edit]
観察
正規表現内のマーク付き部分表現の数を返します
(パブリックメンバ関数) [edit]
構文フラグを返します
(パブリックメンバ関数) [edit]
ロケール
ロケール情報を取得します
(パブリックメンバ関数) [edit]
ロケール情報を設定します
(パブリックメンバ関数) [edit]
変更
内容を入れ替えます
(パブリックメンバ関数) [edit]

定数

効果
icase 大文字小文字を考慮せずに文字のマッチングを行います。
nosubs マッチを行うとき、すべてのマーク付き部分表現 (expr) を、マークなしの部分表現 (?:expr) として扱います。 供給された std::regex_match 構造体に格納されるマッチはなく、 mark_count() はゼロになります。
optimize 構築が遅くなる可能性があっても、マッチングを高速化するよう、正規表現エンジンに指示します。 例えば、これは非決定的 FSA を決定的 FSA に変換することを意味するかもしれません。
collate "[a-b]" 形式の文字範囲をロケール対応にします。
multiline (C++17) ECMAScript エンジンが選択された場合、 ^ を行頭にマッチさせ、 $ を行末にマッチさせます。
ECMAScript 修正 ECMAScript 正規表現文法を使用します。
basic 基本 POSIX 正規表現文法を使用します (文法のドキュメント)。
extended 拡張 POSIX 正規表現文法を使用します (文法のドキュメント)。
awk POSIX の awk ユーティリティで使用される正規表現文法を使用します (文法のドキュメント)。
grep POSIX の grep ユーティリティで使用される正規表現文法を使用します。 これは実質的に代替区切り文字として改行 '\n' を追加した basic オプションと同じです。
egrep POSIX の grep ユーティリティで -E オプションを付けたときに使用される正規表現文法を使用します。 これは実質的に代替区切り文字として '|' に加えて改行 '\n' を追加した extended オプションと同じです。

ECMAScriptbasicextendedawkgrepegrep のうち高々ひとつの文法オプションだけを選択できます。 文法を選択しない場合は ECMAScript が選択されたと仮定されます。 他のオプションは修飾子として働きます。 例えば std::regex("meow", std::regex::icase)std::regex("meow", std::regex::ECMAScript|std::regex::icase) と同等です。

basic_regex のメンバ定数は名前空間 std::regex_constants で定義されている syntax_option_type 定数の複製です。

[編集] 非メンバ関数

std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]

[編集] 推定ガイド(C++17以上)