最終更新日時:
が更新

履歴 編集

class template
<regex>

std::regex_traits(C++11)

namespace std {
  template <class CharT>
  struct regex_traits;
}

概要

regex_traitsは、正規表現ライブラリ<regex>クラス内で使用される、文字とその変換の規則に関する特性を表すクラスである。

このクラスと同じインタフェースのクラスを実装することで、特定の文字コードの場合に、正規表現の振る舞いをカスタマイズできる。

メンバ関数

構築・破棄

名前 説明 対応バージョン
(constructor) コンストラクタ C++11
~regex_traits() = default; デストラクタ C++11
regex_traits& operator=(const regex_traits&) = default;
regex_traits& operator=(regex_traits&&) = default;
代入演算子 C++11

変換

名前 説明 対応バージョン
translate 与えられた文字と同等の文字を取得する C++11
translate_nocase 与えられた文字列と大文字・小文字を区別せずに同等な文字列を取得する C++11
transform 与えられた範囲を、並べ替えのキーとして使用する、文字のシーケンスに変換する C++11
transform_primary 与えられた文字の範囲を、並べ替えのキーとして使用する、大文字・小文字を区別しない文字のシーケンスに変換する C++11
lookup_collatename 与えられた文字の範囲に対応する照合名を取得する C++11
lookup_classname 与えられた文字の範囲に対応するクラス名を取得する C++11
isctype 文字が特定のクラスに属しているかを判定する C++11
value 文字の整数表現を取得する C++11
imbue ロケールを設定する C++11
getloc ロケールを取得する C++11

静的メンバ関数

名前 説明 対応バージョン
length 文字列の長さを取得する C++11

メンバ型

名前 説明 対応バージョン
char_type テンプレートパラメータCharT C++11
string_type char_type文字を要素とする文字列型 std::basic_string<char_type> C++11
locale_type ロケール型 std::locale C++11
char_class_type 正規表現の文字クラス名を表す、実装定義のビットマスク型 C++11

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

int main()
{
  std::regex_traits<char> traits;

  std::string class_name = "alnum"; // 正規表現中で[[:alnum:]]のように入力するクラス名

  // 文字'a'がアルファベットと数字のクラスに含まれているかを判定する
  if (traits.isctype('a', traits.lookup_classname(class_name.begin(), class_name.end()))) {
    std::cout << "'a' is alpha-numeric class" << std::endl;
  }
  else {
    std::cout << "'a' is not alpha-numeric class" << std::endl;
  }
}

出力

'a' is alpha-numeric class

バージョン

言語

  • C++11

処理系