Provided by:
manpages-ja-dev_0.5.0.0.20060115-1_all 
POSIX REGEXル
regcomp() は、正規表現をコンパイルして、 regexec()
での検索処理に適合する形態にする。
regcomp() はパターンを飢韻垢襯丱奪侫,悗離櫂ぅ鵐 preg、
ヌル文字で終端された文字列 regex、
そしてコンパイルの形式を決めるためのフラグ cflag を引数に伴う。
全ての正規表現検索は、コンパイルされたパターンによって行わなければならない。
よって、 regexec() に指定するのは、必ず (regcomp()
によってコンパイルされた)
パターンバッファへのアドレスでなければならない。
cflags には以下に示す定数一つ以上のビットごとの OR (bitwise-or)
を指定する。
REG_EXTENDED
regex に POSIX
拡張正規表現を使用する。もしこのフラグが設定されない場合、 POSIX
標準正規表現が使われる。
REG_ICASE
大文字小文字の違いを無視する。このフラグを指定してコンパイルされた
パターンバッファを用いて regexec()
関数を呼び出すと、大文字小文字の区別を付けずに検索が行われる。
REG_NOSUB
このフラグを設定してコンパイルされたパターンバッファが regexec()
の引数に指定されると、パラメータ nmatch, pmatch が無視される。
REG_NEWLINE
全ての文字にマッチするオペレータに改行をマッチさせない。
改行を含まない非マッチング文字リスト ([^...])
に改行をマッチさせない。
regexec() の実行時に指定するフラグ eflags に REG_NOTBOL
を含むかどうかにかかわらず、行頭にマッチするオペレータ (^)
を改行直後の空文字列にマッチさせる。
eflags に REG_NOTEOL
を含むかどうかにかかわらず、行末にマッチするオペレータ ($)
を改行直前の空文字列にマッチさせる。
POSIX REGEXグ
regexec() は、 プリコンパイルされたパターンバッファ preg
をヌル文字で終端された文字列にマッチさせる。 nmatch と pmatch
はマッチングの位置に関する情報を取得するのに用いられる。 eflags には
REG_NOTBOL と REG_NOTEOL のどちらか、もしくは両方のビットごとの OR
(bitwise-or) を指定し、以下で説明するようにマッチング動作を変化させる。
REG_NOTBOL
行頭にマッチするオペレータは、必ずマッチに失敗する
(コンパイル時のフラグ REG_NEWLINE の項目も参照)。
このフラグは、複数行にまたがる文字列を regexec()
で検索する際に、文字列の先頭を行の先頭として解釈させない場合に用いる。
REG_NOTEOL
行末にマッチするオペレータは、必ずマッチに失敗する
(コンパイル時のフラグ REG_NEWLINE の項目も参照)。
ト
パターンバッファのコンパイル時に REG_NOSUB
が設定されない場合は、部分文字列のマッチング位置情報を得ることがでい襦
pmatch は、少なくとも nmatch の大-
さを持つように指定しなければならない。 regexec()
の実行によって、それらに部分文字列マッチング位置情報が代入される。
未使用の構造体要素には -1 が値として代入される。
pmatch の型である regmatch_t 構造体は、 regex.h 内で定義される。
typedef struct
{
regoff_t rm_so;
regoff_t rm_eo;
} regmatch_t;
構造体要素 rm_so の値が -1
でない場合、それは文字列内での次の最大のマッチング部分の開始
オフセット位置を示す。それに対し、構造体要素 rm_eo
はマッチング部分の終了オフセット位置を示す。
POSIXト
regerror() は、 regcomp() と regexec()
の実行によって得られるエラーコードから、エラーメッセージ文字列を
得るのに用いられる。
regerror() はエラーコード errcode、 パターンバッファ preg、
文字列バッファへのポインタ errbuf、 文字列バッファのサイズ errbuf_size
を引数にとる。
この関数は、ヌル文字で終端されたエラーメッセージ文字列を格納するのに必要な
errbuf のサイズを返す。もし errbuf と errbuf_size の両方が非 0
値であれば、 errbuf には最初の errbuf_size - 1
文字分にエラーメッセージと終端のヌル文字が収まるように代入される。
POSIX放
引数にコンパイルされたパターンバッファ preg を与えて regfree()
を呼び出すと、 regcomp()
によるコンパイル時にパターンバッファに割り当てられたメモリが解放される。
値
regcomp() は、コンパイルの成功時には 0
を返し、失敗時にはエラーコードを返す。
regexec() は、マッチングの成功時には 0 を返し、失敗時には REG_NOMATCH
を返す。
ー
regcomp() は以下のエラーを返す。
REG_BADBR
無効な後方参照オペレータの使用。
REG_BADPAT
グループやリストなどの、パターンオペレータの無効な使用。
REG_BADRPT
`*'
が最初の文字としてくるような、無効な繰り返しオペレータの使用。
REG_EBRACE
インターバルオペレータ {} (brace interval operators)
が閉じていない。
REG_EBRACK
リストオペレータ [] (bracket list operators) が閉じていない。
REG_ECOLLATE
照合順序の要素 (collating element) として邑ではない。
(訳注) 照合順序の要素 (collating element) については、 regex(7)
を参照。
REG_ECTYPE
未知のゥ礇薀タクラス名。
REG_EEND
未定義エラー。これは POSIX.2 には定義されていない。
REG_EESCAPE
正規表現がバックスラッシュで終っている。
(訳注) 日本語環兇両豺隋▲丱奪スラッシュとなるべそ蠅円宜罎
表示されることがあるが、これは単に表示フォントの問題で、
内部的には同じ意味である。
REG_EPAREN
グループオペレータ () (parenthesis group operators)
が閉じていない。
REG_ERANGE
無効な範囲オペレータの使用。
例えば、範囲の終了位置が開始位置よりも前にあるような場合。
REG_ESIZE
正規表現のコンパイルに、64Kb 以上のパターンバッファが必要。
これは POSIX.2 には定義されていない。
REG_ESPACE
regex ルーチンがメモリを使いはたしている。
REG_ESUBREG
サブエクスプレッション \(...\) (subexpression)
への無効な後方参照。
拠
POSIX.2
目
regex(7), GNU regex マニュアル