match_flag_type

typedef implemenation_specific_bitmask_type match_flag_type

match_flag_type 型は実装固有のビットマスク型(C++ 標準 17.3.2.1.2)で、正規表現の文字シーケンスに対するマッチ方法を制御する。書式化フラグの動作は書式化構文ガイドに詳細を記述する。

namespace boost{ namespace regex_constants{

typedef implemenation-specific-bitmask-type match_flag_type;

static const match_flag_type match_default = 0;
static const match_flag_type match_not_bob;
static const match_flag_type match_not_eob;
static const match_flag_type match_not_bol;
static const match_flag_type match_not_eol;
static const match_flag_type match_not_bow;
static const match_flag_type match_not_eow;
static const match_flag_type match_any;
static const match_flag_type match_not_null;
static const match_flag_type match_continuous;
static const match_flag_type match_partial;
static const match_flag_type match_single_line;
static const match_flag_type match_prev_avail;
static const match_flag_type match_not_dot_newline;
static const match_flag_type match_not_dot_null;
static const match_flag_type match_posix;
static const match_flag_type match_perl;
static const match_flag_type match_nosubs;
static const match_flag_type match_extra;
static const match_flag_type format_default = 0;
static const match_flag_type format_sed;
static const match_flag_type format_perl;
static const match_flag_type format_literal;
static const match_flag_type format_no_copy;
static const match_flag_type format_first_only;
static const match_flag_type format_all;

} // namespace regex_constants
} // namespace boost

説明

match_flag_type 型は実装固有のビットマスク型(C++ 標準 17.3.2.1.2)である。文字シーケンス [first, last) に対して正規表現マッチを行うとき、各要素を設定した場合の効果を以下の表に示す。

要素

設定した場合の効果

match_default

正規表現マッチを ECMA-262, ECMAScript Language Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects (FWD.1) で使用されている通常の規則にそのまま従うことを指定する。

match_not_bob

正規表現 \A および \` が部分シーケンス [first,first) にマッチしないことを指定する。

match_not_eob

正規表現 \'\z および \Z が部分シーケンス [last,last) にマッチしないことを指定する。

match_not_bol

正規表現 ^ が部分シーケンス [first,first) にマッチしないことを指定する。

match_not_eol

正規表現 $ が部分シーケンス [last,last) にマッチしないことを指定する。

match_not_bow

正規表現 \< および \b が部分シーケンス [first,first) にマッチしないことを指定する。

match_not_eow

正規表現 \> および \b が部分シーケンス [last,last) にマッチしないことを指定する。

match_any

複数のマッチが可能な場合に、それらのいずれでも結果として適合することを指定する。結果が最左マッチとなることには変わりないが、当該位置における最良マッチは保証されない。何がマッチするかよりも速度を優先する場合(マッチがあるかないかのみを調べる場合)にこのフラグを使用するとよい。

match_not_null

正規表現が空のシーケンスにマッチしないことを指定する。

match_continuous

正規表現が、先頭から始まる部分シーケンスにのみマッチすることを指定する。

match_partial

マッチが見つからない場合に from != last であるマッチ [from, last) を結果として返すことを指定する([from,last] を接頭辞とするより長い文字シーケンス [from,to) が完全マッチの結果として存在する可能性がある場合)。テキストが不完全であるか非常に長い場合に、このフラグを使用するとよい。詳細は部分マッチの項を見よ。

match_extra

有効な捕捉情報をすべて格納するように正規表現エンジンに指示する。捕捉グループが繰り返しになっている場合、match_results::captures および sub_match::captures を用いて各繰り返しに対する情報にアクセスできる。

match_single_line

Perl の m 修飾子の反転と同様で、^ が組み込みの改行文字の直後に、$ が組み込みの改行文字の直前にマッチしないことを指定する(よって、この 2 つのアンカーはそれぞれマッチ対象テキストの先頭、終端にのみマッチする)。

match_prev_avail

--first が合法なイテレータ位置であることを指定する。このフラグを設定した場合、正規表現アルゴリズム(RE.7)およびイテレータ(RE.8)はフラグ match_not_bolmatch_not_bow を無視する。 1

match_not_dot_newline

正規表現 . が改行文字にマッチしないことを指定する。Perl の s 修飾子の反転と同じである。

match_not_dot_null

正規表現 . が null 文字 \0 にマッチしないことを指定する。

match_posix

コンパイル済み正規表現の種類に関わらず、POSIX の最左規則にしたがって式のマッチを行うことを指定する。貪欲でない繰り返しなどの Perl 固有の多くの機能を使用する場合、これらの規則は正しく動作しないことに注意していただきたい。

match_perl

コンパイル済み正規表現の種類に関わらず、Perl のマッチ規則にしたがって式のマッチを行うことを指定する。

match_nosubs

実際に捕捉グループが与えられていても、マーク済み部分式が存在しないとして正規表現を扱う。match_results クラスにはマッチ全体に関する情報のみ含まれ、部分式については記録されない。

format_default

正規表現マッチを新文字列で置換するとき、ECMA-262, ECMAScript Language Specification, Chapter 15 part 5.4.11 String.prototype.replace. (FWD.1) の ECMAScript replace 関数で使用されている規則を用いて新文字列を構築する。

機能的には Perl の書式化文字列の規則と等価である。

検索・置換操作時に指定すると、正規表現は互いに重複しない位置でマッチし、置換する。正規表現にマッチしなかったテキスト部分はそのまま出力文字列にコピーする。

format_sed

正規表現マッチを新文字列で置換するとき、IEEE Std 1003.1-2001, Portable Operating SystemInterface (POSIX), Shells and UtilitiesのUnix sed ユーティリティで使用されている規則を用いて新文字列を構築する。sed の書式化文字列リファレンスも見よ。

format_perl

正規表現マッチを新文字列で置換するとき、Perl 5 と同じ規則を用いて新文字列を生成する。

format_literal

正規表現マッチを新文字列で置換するとき、置換テキストの直値コピーを新文字列とする。

format_all

条件置換 (?ddexpression1:expression2) を含むすべての構文拡張を有効にする。詳細は書式化文字列のガイドを見よ。

format_no_copy

検索・置換操作時に指定すると、検索対象の文字コンテナシーケンスの正規表現にマッチしない部分を出力文字列にコピーしない。

format_first_only

検索・置換操作時に指定すると、最初の正規表現マッチのみを置換する。

1

訳注 “RE.n” は N1429 の節番号(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1429.htm)。