在 PHP 4.3.3 中,可以对子组使用 (?Ppattern) 的语法进行命名。 这个子模式将会在匹配结果中同时以其名称和顺序(数字下标)出现, PHP 5.2.2中又增加了两种味子组命名的语法: (?pattern) 和 (?’name’pattern)。
示例:
$str = 'foobar: 2008';
preg_match('/(?P\w+): (?P\d+)/', $str, $matches);
/* 下面例子在php 5.2.2(pcre 7.0)或更新版本下工作, 然而, 为了后向兼容, 上面的方式是推荐写法. */
// preg_match('/(?\w+): (?\d+)/', $str, $matches);
var_dump($matches);
// array (size=5)
// 0 => string 'foobar: 2008' (length=12)
// 'name' => string 'foobar' (length=6)
// 1 => string 'foobar' (length=6)
// 'digit' => string '2008' (length=4)
// 2 => string '2008' (length=4)
?>