如何计算匹配数并在正则表达式中使用它?

时间:2011-01-13 23:26:06

标签: php regex

2 个答案:

答案 0 :(得分:1)

使用PHP5.3,您可以使用匿名功能。

参见此示例

echo preg_replace_callback('/([\w]+)/', function ($matches) {
    static $pos = 0;
    return sprintf('<li class="beatle_%d">%s</li>', ++$pos, $matches[1]);
}, 'Paul John George Ringo');

答案 1 :(得分:0)

如果你使用的是PHP 5.3,你可以试试preg_replace_callback()

$subject = 'Paul John George Ringo';
$n = 0;
echo preg_replace_callback('/([\w]+)/', function($matches) use (&$n) {
    return '<li class="beatle_'.(++$n).'">'.$matches[1].'</li>';
}, $subject);