PHP Conference Nagoya 2025

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

PREG 定数
定数 説明 使用可能
PREG_PATTERN_ORDER (int) $matches[0] はパターン全体にマッチした文字列の配列、 $matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字列の配列、 といったように結果の順序を指定します。 このフラグは、preg_match_all() でのみ使用されます。  
PREG_SET_ORDER (int) $matches[0] は 1 回目のマッチングでキャプチャした値の配列、 $matches[1] は 2 回目のマッチングでキャプチャした値の配列、 といったように結果の順序を指定します。 このフラグは、preg_match_all() でのみ使用されます。  
PREG_OFFSET_CAPTURE (int) PREG_SPLIT_OFFSET_CAPTURE の説明を参照ください。  
PREG_SPLIT_NO_EMPTY (int) このフラグは、preg_split() が、空文字列でないものだけ を返すようにします。  
PREG_SPLIT_DELIM_CAPTURE (int) このフラグは、preg_split() が 文字列分割用のパターン中のカッコによるサブパターンでキャプチャされた値も 同時に返すようにします。  
PREG_SPLIT_OFFSET_CAPTURE (int) このフラグを設定した場合、各マッチに対応する文字列のオフセットも返されます。 これにより、戻り値は配列となり、配列の要素 0 はマッチした文字列、 要素 1 は対象文字列中におけるマッチした文字列のオフセット値となることに注意してください。 このフラグは preg_split() のみで使用されます。  
PREG_UNMATCHED_AS_NULL (int) このフラグは、 preg_match()preg_match_all() 関数で マッチしなかったサブパターンがあった場合に、 $matchesnull を入れることで伝えます。 このフラグがないと、マッチしなかったサブパターンは いかにも空文字列にマッチしたかのように空文字列として通知されます。 このフラグを設定することで、これらふたつの場合を区別できます。 7.2.0
PREG_NO_ERROR (int) エラーが存在しなかった場合に preg_last_error() から返されます。 5.2.0
PREG_INTERNAL_ERROR (int) PCRE 内部エラーが発生した場合に preg_last_error() から返されます。 5.2.0
PREG_BACKTRACK_LIMIT_ERROR (int) backtrack limit に達した場合に preg_last_error() から返されます。 5.2.0
PREG_RECURSION_LIMIT_ERROR (int) recursion limit に達した場合に preg_last_error() から返されます。 5.2.0
PREG_BAD_UTF8_ERROR (int) 壊れている UTF8 データによって直近のエラーが発生した場合に preg_last_error() から返されます (UTF-8 モード で正規表現を実行した場合のみ)。 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR (int) オフセットが妥当な UTF-8 コードポイントの開始位置に対応しない場合に preg_last_error() から返されます (UTF-8 モード で正規表現を実行した場合のみ)。 5.3.0
PREG_JIT_STACKLIMIT_ERROR (int) 直近の PCRE 関数の実行が JIT スタック空間の制限によって失敗した場合に preg_last_error() から返されます。 7.0.0
PCRE_VERSION (string) PCRE のバージョンおよびリリース日 (例: "7.0 18-Dec-2006")。 5.2.4
PCRE_VERSION_MAJOR (int) PCRE のメジャーバージョン番号  
PCRE_VERSION_MINOR (int) PCRE のマイナーバージョン番号  
PCRE_JIT_SUPPORT (bool) PCRE JIT サポートが有効かどうかを示します。  
PREG_GREP_INVERT (int) 指定されたパターンにマッチしない要素を返します。  
add a note

User Contributed Notes 2 notes

up
27
erutan409 at hotmail dot com
9 years ago
PREG_PATTERN_ORDER: 1
PREG_SET_ORDER: 2
PREG_OFFSET_CAPTURE: 256
PREG_SPLIT_NO_EMPTY: 1
PREG_SPLIT_DELIM_CAPTURE: 2
PREG_SPLIT_OFFSET_CAPTURE: 4
PREG_NO_ERROR: 0
PREG_INTERNAL_ERROR: 1
PREG_BACKTRACK_LIMIT_ERROR: 2
PREG_RECURSION_LIMIT_ERROR: 3
PREG_BAD_UTF8_ERROR: 4
PREG_BAD_UTF8_OFFSET_ERROR: 5
PCRE_VERSION: %YOUR_VERSION_NUMBER%
up
13
Robert
8 years ago
The new PREG_JIT_STACKLIMIT_ERROR constant introduced with PHP 7.0.0 has got a value of 6.

I experienced this error code when parsing a 112KB file. preg_match_all failed with this error. Interesting was: The matches array contained some entries, but not all as the command failed (I missed to check the return value).

Unfortunately you can not configure the stack-size of the PCRE JIT. The only way out was - at least for me - to disable the PCRE JIT via php.ini (pcre.jit=0).
To Top