0

使用 preg_match,您可以使用<name>它并将其添加到输出数组中。

使用 preg_replace,我想匹配一个 url,例如"http://<url>\s"然后将该 url 保留在替换字符串中,例如"beforetheurl<url>aftertheurl"

4

2 回答 2

2

在替换字符串中使用反向引用。

echo preg_replace('#http://(\w+).*$#', 'sld = $1', 'http://mysite.com');

// output: sld = mysite

更多来自手册

替换可能包含 \n 或(自 PHP 4.0.4 起)$n 形式的引用,后一种形式是首选。每个这样的引用都将被第 n 个带括号的模式捕获的文本替换。n 可以是 0 到 99,\0 或 $0 指的是整个模式匹配的文本。左括号从左到右(从 1 开始)计数,以获得捕获子模式的数量。要在替换中使用反斜杠,它必须加倍(“\\”PHP 字符串)。

于 2012-05-23T21:45:03.487 回答
2

这是我评论的一个例子:

<?php

$result = preg_replace("/(matched)/", 'before$1after', "matched");

echo $result;

输出:beforematchedafter

http://codepad.org/PANzOm6c

于 2012-05-23T21:45:12.477 回答