1

PCRE パターン修飾子について読んだとき、各修飾子には、私が使い慣れた文字列リテラルと、明示的な代替手段として公正なゲームであると考えた定数があることに気付きました。

ただし、これらの定数を参照するときは、次のように言います

echo PCRE_CASELESS === "i";

このエラーが発生します

PHP Notice: Use of undefined constant PCRE_CASELESS - assumed 'PCRE_CASELESS'

マニュアルを注意深く読んでいると、

The names in parentheses refer to internal PCRE names for these modifiers

何の内部?ドキュメントにそれらがリストされているという事実は、それらが何らかの形でグローバルスコープで利用可能であると私に推測させます.

4

2 に答える 2

2

ドキュメントは、PHP ユーザー空間から直接アクセスできない基礎となる PCRE ライブラリで内部的に使用される名前を参照しています。名前は、便宜上、ドキュメントに記載されています。

実際の正規表現の一部として修飾子を指定します。たとえば、大文字と小文字を区別しない修飾子 (i) を使用する場合は、次のようにします/regex/i

preg_match('/pattern/i', ...);

http://php.net/manual/en/regexp.reference.delimiters.phpを参照してください。

于 2013-01-02T23:06:01.900 に答える
1

pcre-libraryの内部。それらはphpuserland-codeに公開されていません。それらがマニュアルに表示されるのは、たとえばライブラリ自体の定数や他の言語の実装を知っている人のための情報のみです。したがって、「PCRE_CASELESS」を見て、テキスト全体を再度読まなくても何が起こっているのかを知ることができます。

于 2013-01-02T23:04:10.933 に答える