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

该文档指的是底层 PCRE 库内部使用的名称,无法从 PHP 用户空间直接访问。这些名称只是为了方便文档中的原因。

您将修饰符指定为实际正则表达式的一部分 - 例如,如果您想使用无大小写修饰符 (i),您将使用/regex/i

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

请参阅http://php.net/manual/en/regexp.reference.delimiters.php

于 2013-01-02T23:06:01.900 回答
1

pcre 库内部。它们不会暴露于 php 用户空间代码。它们出现在手册中仅为那些知道库本身的常量或其他语言实现的人提供信息。因此,看到“PCRE_CASELESS”并知道发生了什么,而无需再次阅读整个文本。

于 2013-01-02T23:04:10.933 回答