注释

序列 (?# 标记注释的开始,该注释一直持续到下一个闭合括号。不允许嵌套括号。构成注释的字符在模式匹配中根本不起作用。

如果设置了 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)

添加笔记

用户贡献的笔记 1 个笔记

asamaru at asamaru dot net
7 年前
<?php
$string
= 'test';
echo
preg_match('/te(?# comments)st/', $string) . "\n";
echo
preg_match('/te#~~~~
st/'
, $string) . "\n";
echo
preg_match('/te#~~~~
st/x'
, $string) . "\n";

// 结果
// 1
// 0
// 1
To Top