序列 `(?#` 标记注释的开始,注释一直持续到下一个右括号。不允许嵌套括号。构成注释的字符在模式匹配中完全不起作用。
如果设置了 PCRE_EXTENDED 选项,则字符类之外未转义的 `#` 字符将引入一个注释,该注释将一直持续到模式中的下一个换行符。
示例 #1 在PCRE模式中使用注释
<?php
$subject = 'test';
/* (?# 可用于添加注释,无需启用 PCRE_EXTENDED */
$match = preg_match('/te(?# this is a comment)st/', $subject);
var_dump($match);
/* 除非启用 PCRE_EXTENDED,否则空格和 # 将被视为模式的一部分 */
$match = preg_match('/te #~~~~
st/', $subject);
var_dump($match);
/* 启用 PCRE_EXTENDED 时,所有空格数据字符以及同一行上未转义的 # 后面的任何内容都将被忽略 */
$match = preg_match('/te #~~~~
st/x', $subject);
var_dump($match);
以上示例将输出
int(1) int(0) int(1)