如何在PHP中使用带有正则表达式的命名捕获?谁能给我一个有效的例子呢?
答案 0 :(得分:39)
不适用于替换,仅对php中的匹配有用
$test="yet another test";
preg_match('/(?P<word>t[^s]+)/',$test,$matches);
var_dump($matches['word']);
答案 1 :(得分:12)
PHP 5.2.2引入了两种替代语法
(?<name>pattern)
和(?'name'pattern)
所以你使用以下方法得到相同的结果:
<?php
preg_match('/(?P<test>.+)/', $string, $matches); // basic syntax
preg_match('/(?<test>.+)/', $string, $matches); // alternative
preg_match("/(?'test'.+)/", $string, $matches); // alternative