使用正则表达式在PHP中命名捕获

时间:2011-08-07 07:06:42

标签: php regex

如何在PHP中使用带有正则表达式的命名捕获?谁能给我一个有效的例子呢?

2 个答案:

答案 0 :(得分:39)

不适用于替换,仅对php中的匹配有用

$test="yet another test";

preg_match('/(?P<word>t[^s]+)/',$test,$matches);

var_dump($matches['word']);

答案 1 :(得分:12)

根据documentation

  

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

Check result on 3v4l.org