最終更新日時(UTC):
が更新

履歴 編集

class template
<regex>

std::basic_regex(C++11)

namespace std {
  template <class charT,
            class traits = regex_traits<charT> >
  class basic_regex;

  using regex  = basic_regex<char>;
  using wregex = basic_regex<wchar_t>;
}

概要

basic_regexクラステンプレートは、charT型の文字列から構築する正規表現を表す。 charTは、char型、wchar_t型のような文字型である。 traitsは正規表現の文字・変換に関する特性である。 利便性のために、charTchar特殊化したregexと、charTwchar_t特殊化したwregexが用意されている。

basic_regexオブジェクトの内部表現や、正規表現アルゴリズムがbasic_regexオブジェクトの内部表現にどのようにアクセスするかは規定されない。 ユーザーはそれらを意識することなく、basic_regexオブジェクトを正規表現アルゴリズムに渡すだけでよい。

このクラス中で発生したエラーは、正規表現アルゴリズムがregex_error型の例外を送出することで通知される。

メンバ関数

構築

名前 説明 対応バージョン
(constructor) コンストラクタ C++11
(destructor) デストラクタ C++11

代入

名前 説明 対応バージョン
operator= 正規表現を代入する C++11
assign 正規表現を代入する C++11

定数操作

名前 説明 対応バージョン
mark_count 正規表現内のキャプチャグループの数を返す C++11
flags 最後に設定された正規表現フラグを返す C++11

ロケール

名前 説明 対応バージョン
imbue ロケールを設定する C++11
getloc 現在のロケールを得る C++11

交換

名前 説明 対応バージョン
swap 正規表現オブジェクトを交換する C++11

メンバ定数

静的メンバ定数は利便性のためにstd::regex_constantsで定義される定数の同義語として提供される。

名前 説明 対応バージョン
icase static constexpr regex_constants::syntax_option_type icase = regex_constants::icase; C++11
nosubs static constexpr regex_constants::syntax_option_type nosubs = regex_constants::nosubs; C++11
optimize static constexpr regex_constants::syntax_option_type optimize = regex_constants::optimize; C++11
collate static constexpr regex_constants::syntax_option_type collate = regex_constants::collate; C++11
ECMAScript static constexpr regex_constants::syntax_option_type ECMAScript = regex_constants::ECMAScript; C++11
basic static constexpr regex_constants::syntax_option_type basic = regex_constants::basic; C++11
extended static constexpr regex_constants::syntax_option_type extended = regex_constants::extended; C++11
awk static constexpr regex_constants::syntax_option_type awk = regex_constants::awk; C++11
grep static constexpr regex_constants::syntax_option_type grep = regex_constants::grep; C++11
egrep static constexpr regex_constants::syntax_option_type egrep = regex_constants::egrep; C++11

メンバ型

名前 説明 対応バージョン
value_type charT C++11
traits_type traits C++11
string_type traits::string_type C++11
flag_type regex_constants::syntax_option_type C++11
locale_type traits::locale_type C++11

非メンバ関数

交換

名前 説明 対応バージョン
swap 二つの正規表現オブジェクトを交換する C++11

推論補助

名前 説明 対応バージョン
(deduction_guide) クラステンプレートの推論補助 C++17

#include <iostream>
#include <regex>
#include <string>

int main()
{
  std::string input = "12345";

  // 全てが数字か判定するための正規表現
  std::regex re(R"(^\d+$)");

  if (std::regex_match(input, re)) {
    std::cout << "全て数字です" << std::endl;
  }
  else {
    std::cout << "数字以外が含まれています" << std::endl;
  }
}

出力

全て数字です

バージョン

言語

  • C++11

処理系

  • Clang: 3.0 , 3.1 , 3.2 , 3.3 , 3.4 , 3.5 , 3.6
  • GCC: 4.9.0 , 4.9.1 , 4.9.2 , 5.0.0
  • ICC: ??
  • Visual C++: ??