PHP preg_replace中的$ n

时间:2013-11-22 02:51:24

标签: php

我看到了this website中的一些代码:

function link($text){
    return preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '<a href="$1">$1</a>', $text);
}

$0$1是什么意思?它们是常规变量,还是具有特殊含义?

2 个答案:

答案 0 :(得分:3)

$0$1用于preg_replace功能;

preg_replace ($pattern , $replacement , $subject)

replacement可能包含形式为\ n或(自PHP 4.0.4起)$ n的引用,后一种形式是首选形式。每个这样的引用将被第n个带括号的模式捕获的文本替换。 n可以是0到99,\ 0或$ 0是指整个模式匹配的文本。

来自php doc:http://docs.php.net/manual/en/function.preg-replace.php

答案 1 :(得分:0)

在提供的示例URL中,$ 1指的是preg_replace中第一个捕获的子模式。请参阅以下文档:http://us1.php.net/preg_replace

  

每个此类引用都将被第n个捕获的文本替换   括号模式。 n可以是0到99,而\ 0或$ 0是指   整个模式匹配的文本。计算开括号   从左到右(从1开始)获得的数量   捕获子模式。

相关问题