当阅读PCRE Pattern Modifiers时,我注意到每个修饰符都有一个我熟悉的字符串文字和一个常量,我认为这是一个公平的游戏作为明确的选择。
但是,在提到这些常量时,请说这样
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
内部到底是什么?文档列出它们的事实使我认为它们在全球范围内以某种方式可用。
答案 0 :(得分:2)
文档指的是底层PCRE库内部使用的名称,不能直接从PHP用户空间访问。这些名称只是为了方便起见。
指定修饰符作为实际正则表达式的一部分 - 例如,如果要使用无壳修饰符(i),则使用/regex/i
:
preg_match('/pattern/i', ...);
答案 1 :(得分:1)
pcre-library的内部。它们不会暴露给php userland-code。它们出现在手册中仅用于那些人的信息,例如,他们知道库本身的常量或其他语言实现。所以有人看到“PCRE_CASELESS”并知道,最新情况还没有再读完全文。